天天看點

破解DLL的一點心得體會

####破解入門####

常見的修改方法有兩種,我給你舉例說明:

示例 1------注冊代碼:

00451239 CALL 00405E02  (關鍵CALL,用來判斷使用者輸入的注冊碼是否正确)

0045123D JZ 004572E6   (!!!<--此為關鍵跳轉,如果使用者輸入的注冊碼正确,就跳向成功處,即004572E6處)

0045XXXX YYYYYYYYYY

XXXXXXXX YYYYYYYYYY

XXXXXXXX YYYYYYYYYY

XXXXXXXX 執行到此處,就提示使用者注冊失敗

...提示使用者注冊碼不正确等相關資訊

...

004572E6 ...  <--(注冊成功處!!!)

...提示使用者注冊成功等相關資訊

##示例 1破解方法##

1,隻要把那個關鍵跳轉JZ給改為JNZ(如果使用者輸入的注冊碼錯誤,就注冊成功,輸入正确則注冊失敗)。

2,當然你也可以将JNZ修改為Jmp,這樣的話,你輸入的注冊碼無論正确與否。都可以注冊成功。

示例2 ------注冊代碼:

00451239 CALL 00405E02  (關鍵CALL,用來判斷使用者輸入的注冊碼是否正确)

0045123D JNZ 004572E6   (!!!<--此為關鍵跳轉,如果使用者輸入的注冊碼不正确,就跳向失敗處,即004572E6處)

0045XXXX YYYYYYYYYY

XXXXXXXX YYYYYYYYYY

XXXXXXXX YYYYYYYYYY

XXXXXXXX 執行到此處,就提示使用者注冊成功

...提示使用者注冊成功等相關資訊

...

004572E6 ...  <--(注冊失敗處!!!)

...提示使用者注冊碼不正确等相關資訊

##示例 2破解方法##

1,這種情況的修改,除了把JNZ改為JZ外,

2,還可以将其改為Nop,Nop這個指令沒有任何意義,将該條指令修改為Nop後,便可随意輸入注冊碼來進行注冊了。

####破解入門 ------ 修改代碼####

以下這幾個是爆破時要用到的,其它的如果感興趣,可自行檢視相關資料:

JZ=74;JNZ=75;JMP=EB;Nop=90

爆破的時候,隻要對以上機器碼進行相應的修改就行了,比如第一種情況的時候,可以将74修改為EB,即将JZ修改為JMP。而第二種情況,責需将75修改為90,即将JNZ修改為Nop。

###注意###

破解DLL的一點心得體會

請問如何讓這裡的jnz強跳,去不改變檔案大小

答:

如果是 short 類條件轉移指令的話,直接将機器碼 75 改為 jmp short 的指令機器碼 EB 就是了;

如果是 near 的,即機器碼為 0F 85 這樣的,可以補個 nop 指令碼,即将其修改為 90 E9 即可。

####破解入門 -----軟體####

IDA軟體,網上有的是教程,不多說了。

IDA可以修改 86 64 的DLL。是以推薦用這個。至于用,OD,UE這個看個人喜好。OD隻能打開86的DLL。

如何修改資料

     在Hex View視窗下,[S1]輕按兩下要修改的地方[S2]使用[F2]捷方式修改目前位元組[S3]再按下[F2]快捷方式應用修改。

參考:

http://www.52pojie.cn/thread-348567-1-1.html

http://www.cnblogs.com/xinyuyuanm/archive/2013/05/26/3100543.html

http://blog.sina.com.cn/s/blog_45e2b66c0101bsfb.html

http://blog.csdn.net/lee353086/article/details/46423737



繼續閱讀