- UID
- 49047
注册时间2008-5-1
阅读权限30
最后登录1970-1-1
龙战于野
TA的每日心情 | 奋斗 2025-1-6 18:17 |
---|
签到天数: 153 天 [LV.7]常住居民III
|
发表于 2009-7-5 10:29:22
|
显示全部楼层
感谢杨大虾提供练手的东东
本人小菜一只,因为杨大虾这个crackme没有注册提示,所以有些新来的朋友可能感觉无处下手
斗胆把自己跟踪的经过写下来供参考
不妥之处欢迎批评、指正!
Notes for process: CrackMe 2009-7-5 上午 10:18:10
OD载入,
00401000 >/$ E8 06000000 CALL CrackMe.0040100B ; (initial cpu selection) //停在这里,F7进入
00401005 |. 50 PUSH EAX ; /ExitCode
00401006 \. E8 BB010000 CALL <JMP.&KERNEL32.ExitProcess> ; \ExitProcess
来到
0040100B /$ 55 PUSH EBP //F8单步走
0040100C |. 8BEC MOV EBP,ESP
0040100E |. 81C4 F0FEFFFF ADD ESP,-110
00401014 |. E9 83000000 JMP CrackMe.0040109C
……
00401170 |. 50 PUSH EAX ; |hModule
00401171 |. E8 5C000000 CALL <JMP.&KERNEL32.GetProcAddress> ; \GetProcAddress
00401176 |. 85C0 TEST EAX,EAX
00401178 |. 74 20 JE SHORT CrackMe.0040119A
0040117A |. 68 E8030000 PUSH 3E8
0040117F |. FFD0 CALL EAX
00401181 |. 85C0 TEST EAX,EAX
00401183 |. 74 15 JE SHORT CrackMe.0040119A
00401185 |. E8 00000000 CALL CrackMe.0040118A
0040118A |$ 810424 761E00>ADD DWORD PTR SS:[ESP],1E76
00401191 |. FFD0 CALL EAX ; krnln.1002979A //这里F7跟进去(为什么?因为再F8程序就跑起来了。)
00401193 |. 6A 00 PUSH 0 ; /ExitCode = 0
00401195 |. E8 2C000000 CALL <JMP.&KERNEL32.ExitProcess> ; \ExitProcess
0040119A |> FFB5 F8FEFFFF PUSH DWORD PTR SS:[EBP-108] ; /hLibModule
004011A0 |. E8 27000000 CALL <JMP.&KERNEL32.FreeLibrary> ; \FreeLibrary
进去后来到这里
1002979A 55 PUSH EBP //继续F8单步……
1002979B 8BEC MOV EBP,ESP
1002979D 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
100297A0 50 PUSH EAX
100297A1 B9 98CF0E10 MOV ECX,krnln.100ECF98
100297A6 E8 04F5FFFF CALL krnln.10028CAF //这里再F7跟进去,原因同上 :)
100297AB 5D POP EBP
100297AC C2 0400 RETN 4
到了这里
10028CAF 55 PUSH EBP //继续单步走
10028CB0 8BEC MOV EBP,ESP
10028CB2 83EC 08 SUB ESP,8
10028CB5 53 PUSH EBX
……
10028CD7 8B4D 08 MOV ECX,DWORD PTR SS:[EBP+8]
10028CDA 51 PUSH ECX
10028CDB 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
10028CDE E8 AD060300 CALL krnln.10059390
10028CE3 - FFE0 JMP EAX ; CrackMe.004063FF //哈哈,要挑走啦~~~对比前面的地址
F8一下下
004063FF FC CLD ; (initial cpu selection) //这里才是真正的程序入口处,前面的代码都是易语言的封装代码,到了这里就可以用字符串参考啦~~~啦啦啦~~~~
00406400 DBE3 FINIT
00406402 E8 F6FFFFFF CALL CrackMe.004063FD
00406407 68 FE634000 PUSH CrackMe.004063FE
kelver大虾已经贴出了代码,我就不重复啦
后面就很容易咯
明码比较的,自己动手试试吧!
以上过程所有易语言程序基本通用,很快就可以跟到真实程序入口处。如果各位有更好的办法,希望公布一下,谢谢!
beijingren
1984887871
[ 本帖最后由 beijingren 于 2009-7-5 10:32 编辑 ] |
|