首页
社区
课程
招聘
奇怪的UPX 1.90
发表于: 2006-8-2 09:34 4189

奇怪的UPX 1.90

2006-8-2 09:34
4189
这是一个dll,用fileinfo看是 upx1.90  以下是我遇到的问题。 与fly的《OD手脱UPX加壳的DLL》代码有些不同,请大家往下看。

1128192C    C2 0C00         RET 0C
1128192F    83C7 04         ADD EDI,4
11281932    8D5E FC         LEA EBX,DWORD PTR DS:[ESI-4]
11281935    31C0            XOR EAX,EAX
11281937    8A07            MOV AL,BYTE PTR DS:[EDI]
//断下 edi=1127190a
11281939    47              INC EDI
1128193A    09C0            OR EAX,EAX
1128193C    74 22           JE SHORT CrackMe.11281960
//重定位处理完毕
1128193E    3C EF           CMP AL,0EF
11281940    77 11           JA SHORT CrackMe.11281953
11281942    01C3            ADD EBX,EAX
11281944    8B03            MOV EAX,DWORD PTR DS:[EBX]
11281946    86C4            XCHG AH,AL   //UPX壳特征位置
11281948    C1C0 10         ROL EAX,10
1128194B    86C4            XCHG AH,AL
1128194D    01F0            ADD EAX,ESI
1128194F    8903            MOV DWORD PTR DS:[EBX],EAX
11281951  ^ EB E2           JMP SHORT CrackMe.11281935
11281953    24 0F           AND AL,0F
11281955    C1E0 10         SHL EAX,10
11281958    66:8B07         MOV AX,WORD PTR DS:[EDI]
1128195B    83C7 02         ADD EDI,2
1128195E  ^ EB E2           JMP SHORT CrackMe.11281942
///////////////////////////////////不同开始
11281960    8BAE 40722800   MOV EBP,DWORD PTR DS:[ESI+287240]
11281966    8DBE 00F0FFFF   LEA EDI,DWORD PTR DS:[ESI-1000]
1128196C    BB 00100000     MOV EBX,1000
11281971    50              PUSH EAX
11281972    54              PUSH ESP
11281973    6A 04           PUSH 4
11281975    53              PUSH EBX
11281976    57              PUSH EDI
11281977    FFD5            CALL EBP
11281979    8D87 E7010000   LEA EAX,DWORD PTR DS:[EDI+1E7]
1128197F    8020 7F         AND BYTE PTR DS:[EAX],7F
11281982    8060 28 7F      AND BYTE PTR DS:[EAX+28],7F
11281986    58              POP EAX
11281987    50              PUSH EAX
11281988    54              PUSH ESP
11281989    50              PUSH EAX
1128198A    53              PUSH EBX
1128198B    57              PUSH EDI
1128198C    FFD5            CALL EBP
1128198E    58              POP EAX
////////////////////////////////////////////不同结束
1128198F    61              POPAD
11281990    8D4424 80       LEA EAX,DWORD PTR SS:[ESP-80]
11281994    6A 00           PUSH 0
11281996    39C4            CMP ESP,EAX
11281998  ^ 75 FA           JNZ SHORT CrackMe.11281994
1128199A    83EC 80         SUB ESP,-80
1128199D  - E9 CE2ED8FF     JMP CrackMe.11004870

我们可以看出1128193C是跳转到重定位结束地址11281960  可11281960 不是popad,与我们通常处理的upx壳不同。我试着在1128198f断下,然后dump,修正重定位,但是失败了。前面的dump处理就不对。
我用////////////标记的,这段代码是什么作用啊,真搞不懂,请教高手。

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 44229
活跃值: (19955)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
upx壳还是想办法用其自身脱壳或试UPX ShellEx v1.10(http://www.pediy.com/tools/PACK/Packers/UPX/UPXShellEx.rar)
2006-8-2 12:02
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
多谢坛主,搞定了。  以前我也一直用这个工具的, 作者的主页一直打不开,所以,我的版本是0.9c

谢谢了
2006-8-5 18:27
0
游客
登录 | 注册 方可回帖
返回
//