飘云老大的 CrackMe #3 For PYG5.4 Cracker的LOADER实现又一法
忙了好长时间了,一直没有时间上来学习(连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
00401017|.F3:A5 rep movs dword ptr es:, dword ptr
00401019|.50 push eax
上面的0040605c存放的就是CreateMutex函数的一个重要参数.修改它就可以实现多开.这个是第一个不同点.
为了修改这个参数,在程序解压完成以后跳向自己写的代码进行修改..
0040A411 61 popad
0040A412 9D popfd
0040A413- E9 486CFFFF jmp 00401060 <-这里
0040A418 8BB5 67FEFFFF mov esi, dword ptr
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 , 0
0040D0EC 74 03 je short 0040D0F1
0040D0EE A4 movs byte ptr es:, byte ptr
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 编辑 ] 呵呵,是不是太菜了..都无人问津..
0040D0E9 800E 00 or byte ptr , 0
改为
test byte ptr ,byte ptr
似乎会好些,汇编太差劲..都写不来.. 不是啊。论坛人气怎么没有以前多了呢。
前辈们多发点基础贴子啊。呵 飘云阁好像没什么人来逛哦...怎么搞的...像一个人在山村野外一样... 原帖由 dh0807 于 2007-5-17 06:45 发表 https://www.chinapyg.com/images/common/back.gif
不是啊。论坛人气怎么没有以前多了呢。
前辈们多发点基础贴子啊。呵
非也~~大家可能忙着5.4学习小组的事宜,至于基础贴,论坛很多,可以自己找,再加上有07教程!都是些基础的东西。 我会一直在这晨待下去的,偶尔也可以潜水 谢谢分享,学习了。 学习了。/:08 下来学习学习
页:
[1]