【免責聲明】 :純屬技術交流
爲hb****寫的破解筆記
破解一軟件,名字是廚衛XXXXX,主要是去除自校驗的思路。
查殼,ASPack 2.001 -> Alexey Solodovnikov
應該沒多大問,手動脫殼。無法運行,修復是一個習慣。
修復後,一看是Borland Delphi 6.0 - 7.0,運行後更很鬱悶,一閃,程序沒了,退出了,
肯定有自校驗。暈暈。
OD載入已脫殼的程序,開始的時候用CreateFileA,找不到他的自校驗跳轉的地方。
試試bpx hmemcpy,找找他的讀取文件大小的GetFileSize。
Intermodular calls,項目 808
地址=00402EA0
反彙編=call <jmp.&kernel32.GetFileSize>
目標=kernel32.GetFileSize
對GetFileSize全部下斷點。運行跟蹤他(記得要隱藏OD哦,不然OD也會退出)。
00403215 /77 23 ja short dumped_.0040323A
00403217 |6A 00 push 0
00403219 |8B03 mov eax,dword ptr ds:[ebx]
0040321B |50 push eax
0040321C |E8 0FE1FFFF call <jmp.&kernel32.GetFileSize>
00403221 |8BF0 mov esi,eax
00403223 |83FE FF cmp esi,-1
00403226 |75 07 jnz short dumped_.0040322F
00403228 |E8 B3F7FFFF call dumped_.004029E0
0040322D |EB 15 jmp short dumped_.00403244
0040322F |8BC6 mov eax,esi
00403231 |33D2 xor edx,edx
00403233 |F773 08 div dword ptr ds:[ebx+8]
00403236 |8BF0 mov esi,eax
00403238 |EB 0A jmp short dumped_.00403244
0040323A /B8 67000000 mov eax,67
0040323F E8 8CF7FFFF call dumped_.004029D0
00403244 8BC6 mov eax,esi
00403246 5E pop esi
00403247 5B pop ebx
00403248 C3 retn //下一步到00530C37
00403249 8D40 00 lea eax,dword ptr ds:[eax]
0040324C 57 push edi
到這,慢慢跟蹤他。
00530C37 E8 741DEDFF call dumped_.004029B0
00530C3C 8BD8 mov ebx,eax
00530C3E 8D85 B4FEFF>lea eax,dword ptr ss:[ebp-14C]
00530C44 E8 1324EDFF call dumped_.0040305C
00530C49 E8 621DEDFF call dumped_.004029B0
00530C4E 81FB 00E00C>cmp ebx,0CE000
00530C54 74 05 je short dumped_.00530C5B //就這,將je改成jmp,跳走,就OK了
00530C56 E8 813BEDFF call dumped_.004047DC / /就他,該死的,會退出的。
00530C5B 33C0 xor eax,eax
00530C5D 5A pop edx
00530C5E 59 pop ecx
00530C5F 59 pop ecx
00530C60 64:8910 mov dword ptr fs:[eax],edx
00530C63 68 7B0C5300 push dumped_.00530C7B
00530C68 8D85 B0FEFF>lea eax,dword ptr ss:[ebp-150]
00530C6E E8 DD3CEDFF call dumped_.00404950
00530C73 C3 retn
00530C74 ^ E9 7735EDFF jmp dumped_.004041F0
修改後,將文件保存,一運行,不會退出了。
去除自校驗OK。剩下的是破解了,由於是網絡驗證的方式,我選擇的是暴力破解。改幾下跳轉就行了。