手脱UPX的几种方法

第一种:

1.OD载入后

0040CDD0 > $  60            PUSHAD
0040CDD1   .  BE 00B04000   MOV ESI,工程1.0040B000
0040CDD6   .  8DBE 0060FFFF LEA EDI,DWORD PTR DS:[ESI+FFFF6000] 

2.F8向下,遇到向上的跳转就F4强行向下

0040CDF2   > /8B1E          MOV EBX,DWORD PTR DS:[ESI]
0040CDF4   .  83EE FC       SUB ESI,-4
0040CDF7   .  11DB          ADC EBX,EBX
0040CDF9   >^ 72 ED         JB SHORT 工程1.0040CDE8  //F4向下

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

0040CE56   .  11DB          ADC EBX,EBX
0040CE58   >  11C9          ADC ECX,ECX
0040CE5A   .  01DB          ADD EBX,EBX
0040CE5C   .^ 73 EF         JNB SHORT 工程1.0040CE4D  //F4向下

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

0040CE82   .  47            INC EDI
0040CE83   .  49            DEC ECX
0040CE84   .^ 75 F7         JNZ SHORT 工程1.0040CE7D  //运行到这里停下,按向下箭头到0040CE8C,按下F4
0040CE86   .^ E9 63FFFFFF   JMP 工程1.0040CDEE
0040CE8B      90            NOP
0040CE8C   >  8B02          MOV EAX,DWORD PTR DS:[EDX]  //在此处按F4强行运行到此处

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

0040CE96   .  83E9 04       SUB ECX,4
0040CE99   .^ 77 F1         JA SHORT 工程1.0040CE8C
0040CE9B   .  01CF          ADD EDI,ECX
0040CE9D   .^ E9 4CFFFFFF   JMP 工程1.0040CDEE  //F4向下

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

0040CEAF   > /3C 01         CMP AL,1
0040CEB1   .^|77 F7         JA SHORT 工程1.0040CEAA //F4向下
0040CEB3   . |803F 02       CMP BYTE PTR DS:[EDI],2
0040CEB6   .^|75 F2         JNZ SHORT 工程1.0040CEAA
0040CEB8   . |8B07          MOV EAX,DWORD PTR DS:[EDI]  //F4向下

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

0040CECF   .  83C7 05       ADD EDI,5
0040CED2   .  88D8          MOV AL,BL
0040CED4   .^ E2 D9         LOOPD SHORT 工程1.0040CEAF  //F4向下

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

0040CEDC   > /8B07          MOV EAX,DWORD PTR DS:[EDI]
0040CEDE   . |09C0          OR EAX,EAX
0040CEE0   . |74 45         JE SHORT 工程1.0040CF27  //此处按Enter键跟随

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

0040CF27   > /8BAE 28CA0000 MOV EBP,DWORD PTR DS:[ESI+CA28]  //跟随到这里,按下F4强行运行到此处,F8向下

0040CF2D   .  8DBE 00F0FFFF LEA EDI,DWORD PTR DS:[ESI-1000]
0040CF33   .  BB 00100000   MOV EBX,1000

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

0040CF5B   > /6A 00         PUSH 0
0040CF5D   . |39C4          CMP ESP,EAX
0040CF5F   .^/75 FA         JNZ SHORT 工程1.0040CF5B  //F4向下
0040CF61   .  83EC 80       SUB ESP,-80
0040CF64   .- E9 5B44FFFF   JMP 工程1.004013C4 //此处跳转到程序OEP

0040CF69      00            DB 00
0040CF6A      00            DB 00
0040CF6B      00            DB 00
0040CF6C      00            DB 00
0040CF6D      00            DB 00
0040CF6E      00            DB 00
0040CF6F      00            DB 00
0040CF70      00            DB 00
0040CF71      00            DB 00
0040CF72      00            DB 00
0040CF73      00            DB 00
0040CF74      00            DB 00

第二种:

1.OD载入,代码如下:

0040CDD0 > $  60            PUSHAD
0040CDD1   .  BE 00B04000   MOV ESI,工程1.0040B000    //F8运行到这里,看寄存器中的值,如图 

2.数据窗口中跟随ESP寄存器中的值,并且下一个硬件断点,Shift+F9运行,断在如下代码处

0040CF57   .  8D4424 80     LEA EAX,DWORD PTR SS:[ESP-80]
0040CF5B   >  6A 00         PUSH 0
0040CF5D   .  39C4          CMP ESP,EAX
0040CF5F   .^ 75 FA         JNZ SHORT 工程1.0040CF5B
0040CF61   .  83EC 80       SUB ESP,-80
0040CF64   .- E9 5B44FFFF   JMP 工程1.004013C4  //此处跳转到程序OEP

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值