Mac APP 破解之路四 010Editor


 

 

破解經常需要改跳轉,跳到指定地點.

000000010036d5f5         je         sub_10036c970+3211.      指令代碼: 0F 84 00 00 00 00 

這句話的含義是:   je 0x10036d5fb 如果相等就是跳到下一行

如果我想將其修改到sub_10036d6d3地址怎么做呢?

 

我所記得的是je指令編碼是74。  jne指令是75.

而上面的指令編碼是 :0F 84 00 00 00 00 很奇怪?跳到下一行的指令應該是 74 00才對

 

000000010036d809         je         loc_10036d97d   (分析: 10036d97d - 10036d809 =  0x174(包含指令長度6))

指令代碼: 0F 84 6E 01 00 00 

000000010036d811         je         loc_10036d829。(分析: 10036d829 - 10036d811 =  0x18  (包含指令長度2)).   

指令代碼: 74 16 

=========

總結一點:  

sub_xxxxx 的地址位置以函數起始地址開始計算.     loc_xxxxx的地址以當前指令位置開始計算

0F 84 6E 01 00 00   因為要跳的距離大於1個字節(FF)所以用 0F 84表示 je.  

 6E 01 00 00 表示以當前指令地址的結尾處開始算起第016e處就是他的地址,

也就是:  10036d809+6(指令長度) + 016e = 0x10036d97d.   剛好吻合.

歸納:

je 長跳: 0F 84 + 4字節數據

jne長跳: 0F 85 + 4字節數據

je短跳: 74 + 1字節數據

jne短跳: 75 + 1字節數據

=============================

回到之前的問題: 

 je 0x10036d5fb   編碼: :0F 84 00 00 00 00

改為: je sub_10036d6d3

編碼應該是:  

0x10036d5f5 + 6 + x = 0x10036d6d3

x = 0x10036d6d3 -6 - 0x10036d5f5

x = 0xd8

 

結果:0F 84 D8 00 00 00 

完美改造.

說明:這是我在破解010Editor編輯器里的一個點,改完跳轉指令,運行結果: 

還沒有完全破解, 以后有時間繼續吧.

 冷靜分析: 導出為pdf 從失敗地方開始向上走, 總有一個分支,是區別成功和失敗的.

 

 

 破解成功: 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM