首 页文章中心黑客软件黑客动画绿色软件私服技术私服下载本站论坛
您当前的位置:黑客之家文章中心脱壳破解软件脱壳 → 文章内容 退出登录 用户管理
本类热门文章
相关文章
站内广告
手动脱掉Asprotect的壳,(给初学者的)(9千字)
作者:佚名  来源:不详  发布时间:2008-1-10 1:10:32

减小字体 增大字体

已经好久没有写东西了,呵呵,人懒没办法啊,不过我现在在学脱asprotect得壳,研究了几天,
对付些简单得已经没问题了,所以这里写篇文章给初学脱asprotect这冬冬得cracker.
感谢zombieys,blowfish,小球对我的帮助!
目标软件是个叫做icon catcher 3得软件,是抓图标用的

用trw载入软件,然后load,来到了这里:
0167:00401000 6801604D00      PUSH    DWORD 004D6001
0167:00401005 E801000000      CALL    0040100B
0167:0004100A C3              RET
上面的那个call是可以用f10带过去的,再按一次f10就来到了上面的ret,然后返回到了下面这个地方:
0167:004D6001 60              PUSHA 
0167:004D6002 E803000000      CALL    004D600A
0167:004D6007 E9EB045D45      JMP      45AA64F7
上面的这个call 004d600a是一定要进入的,因为大客们说过这个call相当于是jmp,瞧,call 004d600a
这个地址(004d600a)是不是离此指令的地址(004d6002)很近呢?以后看到这样的地址都要用f8进入,建
议以后跟踪的时候用f8键.
以后跟踪要主意的地方就是,看到程序向上跳的时候,就在跳转指令的下面一行按f9设置断点,返回f5继
续运行,这样一般都能跳过循环
0167:004D60C4 BEE70FD372      MOV      ESI,72D30FE7
0167:004D60C9 5E              POP      ESI
0167:004D60CA 81C32903B24D    ADD      EBX,4DB20329
0167:004D60D0 80D6DF          ADC      DH,DF
0167:004D60D3 8919            MOV      [ECX],EBX
0167:004D60D5 80CA71          OR      DL,71
0167:004D60D8 83E901          SUB      ECX,BYTE +01
0167:004D60DB 49              DEC      ECX
0167:004D60DC 49              DEC      ECX
0167:004D60DD 49              DEC      ECX
0167:004D60DE 81E801000000    SUB      EAX,01
0167:004D60E4 0F859EFFFFFF    JNZ      NEAR 004D6088            (JUMP)这个会向"上"跳
0167:004D60EA 68EBFDE75C      PUSH    DWORD 5CE7FDEB
那个jnz near 004d6008会向上面跳转,所以这时你就应该在他的下面一行,也就是push dword 5ce7fdeb
这里设置一个断点,然后按f5,之后程序就会被中断到这里了.

但是还有下面这种情况要主意!
0167:004D6242 58              POP      EAX
0167:004D6243 81EA4EBACE4B    SUB      EDX,4BCEBA4E
0167:004D6249 0FBFF6          MOVSX    ESI,SI
0167:004D624C 81C24ABACE4B    ADD      EDX,4BCEBA4A
0167:004D6252 8BF7            MOV      ESI,EDI
0167:004D6254 81FAACF9FFFF    CMP      EDX,FFFFF9AC
0167:004D625A 0F8516000000    JNZ      NEAR 004D6276            (JUMP)
0167:004D6260 6880C8D167      PUSH    DWORD 67D1C880
0167:004D6265 6681C7755D      ADD      DI,5D75
0167:004D626A 5E              POP      ESI
0167:004D626B E921000000      JMP      004D6291
0167:004D6270 D6              SALC   
虽然jnz near 004d6276是向"下"跳转的,但是当你跳到那里的时候你会发现那里又会有个jmp xxxxx
而且跳转的方向是向上面的,然后你就又会回到上面那段代码,所以这时候你应该在jmp 004d6291那行
设置一个断点,然后f5让程序运行,此时程序又会被中断了:)而且你跳过了那讨厌的循环了,后面像这样
的情况还非常多,一定要注意!
0167:004D6604 8B31            MOV      ESI,[ECX]
0167:004D6606 03F2            ADD      ESI,EDX
0167:004D6608 E82F000000      CALL    004D663C
0167:004D660D BFA75125B7      MOV      EDI,B72551A7
0167:004D6612 3BC7            CMP      EAX,EDI
0167:004D6614 7405            JZ      004D661B        //瞧这个,刚开始的时候这里是不跳的
0167:004D6616 83C104          ADD      ECX,BYTE +04
0167:004D6619 EBE9            JMP      SHORT 004D6604  //又是个循环!
0167:004D661B XXXX            XXXXXXXXXXXXXXXXXXXXXX    //所以在这里设置断点,
后面几乎每个call都要用f8进入,但是如果碰到下面这样的call,你就可以放心大胆的用f10带过去了!
0167:004D64CB FF9560020000    CALL    NEAR [EBP+0260]  //f10带过!
0167:004D64D1 898575010000    MOV      [EBP+0175],EAX
0167:004D64D7 8B9D6

[1] [2] [3]  下一页

[] [返回上一页] [打 印]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 文章投稿 - 软件发布 -