- UID
- 10919
注册时间2006-4-18
阅读权限10
最后登录1970-1-1
周游历练
该用户从未签到
|
忙了好长时间了,一直没有时间上来学习(连pyg5.4引导小组的第一课课程都没时间学完,哭啊).
终于有时间了:).今天弄了一下飘云老大的这个CrackMe,搜索了下论坛,发现和大虾们用的方法有些不同.所以发上来,让大虾们批批!!
很多在下面这个贴子里已经说了,我就不再重复.说说我自己的方法就行了..
https://www.chinapyg.com/viewthread.php?tid=5577&highlight=CrackMe%2B%233%2BFor%2BPYG5.4%2BCracker
我的做法是在壳把程序代码全部解压以后再修改,修改CreateMutex函数的参数来实现多开..
0040100C |. 56 push esi
0040100D |. 57 push edi
0040100E |. BE 5C604000 mov esi, 0040605C <-这里 ; ASCII "CrackMe #3 For PYG5.4 Cracker"
00401013 |. 8D7C24 08 lea edi, dword ptr [esp+8]
00401017 |. F3:A5 rep movs dword ptr es:[edi], dword ptr [esi]
00401019 |. 50 push eax
上面的0040605c存放的就是CreateMutex函数的一个重要参数.修改它就可以实现多开.这个是第一个不同点.
为了修改这个参数,在程序解压完成以后跳向自己写的代码进行修改..
0040A411 61 popad
0040A412 9D popfd
0040A413 - E9 486CFFFF jmp 00401060 <-这里
0040A418 8BB5 67FEFFFF mov esi, dword ptr [ebp-199]
0040A41E 0BF6 or esi, esi
0040A420 0F84 97000000 je 0040A4BD
第三行就是跳向程序OEP的.做法就是将这个jmp转向,跳到自己写的代码里,如下:
0040D0DD 60 pushad
0040D0DE 9C pushfd
0040D0DF BE 40DD4000 mov esi, 0040DD40 ; ASCII "CrackMe #4 For PYG5.4 Cracker"
0040D0E4 BF 5C604000 mov edi, 0040605C ; ASCII "CrackMe #4 For PYG5.4 Cracker"
0040D0E9 800E 00 or byte ptr [esi], 0
0040D0EC 74 03 je short 0040D0F1
0040D0EE A4 movs byte ptr es:[edi], byte ptr [esi]
0040D0EF ^ EB F8 jmp short 0040D0E9
0040D0F1 9D popfd
0040D0F2 61 popad
0040D0F3 - E9 683FFFFF jmp 00401060 <-这里跳向OEP
做完以后再跳到程序的OEP开始执行程序.0040dd40里面存放着将要使用的CreateMutex参数.
CrackMe下载地址:https://www.chinapyg.com/viewthread.php?tid=5132&extra=page%3D1
[ 本帖最后由 Gue 于 2007-5-15 21:06 编辑 ] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入我们
x
|