首页
社区
课程
招聘
[旧帖] [求助]郁闷好几天了,有关UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo的壳 0.00雪花
发表于: 2008-4-12 20:12 10656

[旧帖] [求助]郁闷好几天了,有关UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo的壳 0.00雪花

2008-4-12 20:12
10656
各位大哥好,来看雪好久了,还是第一次向大家请教呢,请大大们指点:
手头有一文件,被加壳,用看雪的PEiD 查看是UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo,PESniffer查看是UPX v0.89.6 - v1.02 / v1.05 - v1.22。
下面是我用OD操作的一些代码,希望大大们别看晕了,OD载入后

00413CE0 >  60              PUSHAD   
00413CE1    BE 00D04000     MOV ESI,dllexp.0040D000
00413CE6    8DBE 0040FFFF   LEA EDI,DWORD PTR DS:[ESI+FFFF4000]
00413CEC    57              PUSH EDI
00413CED    83CD FF         OR EBP,FFFFFFFF
00413CF0    EB 10           JMP SHORT dllexp.00413D02

这个没有什么特殊的,都差不多
遵循着UPX壳的特点操作方法,往后跳不往回跳,n次F4 和F8之后来到这里,奇怪出现了,

00413E1B    57              PUSH EDI
00413E1C    48              DEC EAX
00413E1D    F2:AE           REPNE SCAS BYTE PTR ES:[EDI]
00413E1F    55              PUSH EBP    <----大大们就是这个地方传说中的OEP怎么可能在POPAD之前就出现了呢,应该在POPAD之后的那个大跳转的目的地址里面呢
00413E20    FF96 30410100   CALL DWORD PTR DS:[ESI+14130]
00413E26    09C0            OR EAX,EAX
00413E28    74 07           JE SHORT dllexp.00413E31
00413E2A    8903            MOV DWORD PTR DS:[EBX],EAX
00413E2C    83C3 04         ADD EBX,4
00413E2F  ^ EB D8           JMP SHORT dllexp.00413E09
00413E31    FF96 38410100   CALL DWORD PTR DS:[ESI+14138]
00413E37    8BAE 34410100   MOV EBP,DWORD PTR DS:[ESI+14134]
00413E3D    8DBE 00F0FFFF   LEA EDI,DWORD PTR DS:[ESI-1000]
00413E43    BB 00100000     MOV EBX,1000
00413E48    50              PUSH EAX
00413E49    54              PUSH ESP
00413E4A    6A 04           PUSH 4
00413E4C    53              PUSH EBX
00413E4D    57              PUSH EDI
00413E4E    FFD5            CALL EBP
00413E50    8D87 07020000   LEA EAX,DWORD PTR DS:[EDI+207]
00413E56    8020 7F         AND BYTE PTR DS:[EAX],7F
00413E59    8060 28 7F      AND BYTE PTR DS:[EAX+28],7F
00413E5D    58              POP EAX
00413E5E    50              PUSH EAX
00413E5F    54              PUSH ESP
00413E60    50              PUSH EAX
00413E61    53              PUSH EBX
00413E62    57              PUSH EDI
00413E63    FFD5            CALL EBP
00413E65    58              POP EAX
00413E66    61              POPAD            <------这里应该是脱壳见曙光的地方
00413E67    8D4424 80       LEA EAX,DWORD PTR SS:[ESP-80]
00413E6B    6A 00           PUSH 0
00413E6D    39C4            CMP ESP,EAX
00413E6F  ^ 75 FA           JNZ SHORT dllexp.00413E6B
00413E71    83EC 80         SUB ESP,-80  
     <----如果没有以上5行就和教程上的一样了
00413E74  - E9 9963FFFF     JMP dllexp.0040A212  <------正常这里应该是跳到OEP去的,可是现在不是了
00413E79    0000            ADD BYTE PTR DS:[EAX],AL
00413E7B    0000            ADD BYTE PTR DS:[EAX],AL
00413E7D    0000            ADD BYTE PTR DS:[EAX],AL
00413E7F    0000            ADD BYTE PTR DS:[EAX],AL
00413E81    0000            ADD BYTE PTR DS:[EAX],AL

请大大们指点一下,

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (15)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kic
2
OD载入
00413CE0 >  60              PUSHAD
00413CE1    BE 00D04000     MOV ESI,dllexp.0040D000  [/COLOR]<----F8一次后到达这里,ESP值为 0012FFA4
00413CE6    8DBE 0040FFFF   LEA EDI,DWORD PTR DS:[ESI+FFFF4000]
00413CEC    57              PUSH EDI
00413CED    83CD FF         OR EBP,FFFFFFFF
00413CF0    EB 10           JMP SHORT dllexp.00413D02
00413CF2    90              NOP

选中ESP,右键,选择“数据窗口中跟随”
在数据窗口中,右键,断点,硬件断点,word
F9运行,断下
00413E61    53              PUSH EBX
00413E62    57              PUSH EDI
00413E63    FFD5            CALL EBP
00413E65    58              POP EAX
00413E66    61              POPAD
00413E67    8D4424 80       LEA EAX,DWORD PTR SS:[ESP-80] <------程序运行到此被断下来,断是断下来了,也是在POPAD后面断下来的,正常的此处应该是跳到OEP的大跳转,F8一次就到了,可是现在不是了,
00413E6B    6A 00           PUSH 0
00413E6D    39C4            CMP ESP,EAX
00413E6F  ^ 75 FA           JNZ SHORT dllexp.00413E6B
00413E71    83EC 80         SUB ESP,-80
00413E74  - E9 9963FFFF     JMP dllexp.0040A212
00413E79    0000            ADD BYTE PTR DS:[EAX],AL
00413E7B    0000            ADD BYTE PTR DS:[EAX],AL
00413E7D    0000            ADD BYTE PTR DS:[EAX],AL

郁闷了,因为是新手,还在照葫芦画瓢的阶段,不知道变通,呵呵,请大大费心指点
2008-4-12 20:23
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我也是这个壳破不了,有知道的大侠吼下,期待啊
2008-4-12 21:24
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
文件发上来啊
2008-4-12 21:45
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
壳太大了,2M多,上传不上,能+QQ么,925004390
2008-4-12 22:06
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
师傅,你太不够意思了,这样就走了
2008-4-12 22:28
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kic
7
我想把文件发上来阿,可是俺还说够10句话呢,不让俺上传附件
2008-4-12 22:49
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kic
8
千挑万选,终于找到一位牛人的RL!dePacker.exe,再次对作者大哥表示感谢,真的很好用,但是结果不太理想,
用RL!dePacker.exe脱壳,需要选中Force to manual OEP,否则不能脱,
脱壳后程序正确运行,用看雪的PEID查看结果Microsoft Visual C++ 7.0 Method2 [Overlay],原来软件34K,脱壳后91.2K,可是仍然看不到他的资源,是脱的不干净,还是VC本身把资源压缩了???
2008-4-12 22:57
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kic
9
这个就是需要脱壳的软件,功能很简单的小软件练手的
上传的附件:
2008-4-12 23:51
0
雪    币: 14
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
upx自身脱壳,干净得要死!!!
2008-4-13 01:23
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
我真汗 ESP定律就搞定了,不能在减肥了, 资源可以访问,我把我脱的传上需要的你就下.
上传的附件:
2008-4-13 01:23
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kic
12
昨天 不能上网 ,今天才来 ,谢谢了,各位大哥 ,不过 wiliansier 大哥脱的文件也不能访程序里的资源,对话框,菜单都不能访问,没别的意思,就是俺的E文不太好,想汉化一下这个软件,她的功能俺比较喜欢,因为经常要用些 DLL,需要查看里面的接口函数,,,,我再用ESP 搞一下
2008-4-14 11:25
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kic
13
我上面用ESP定律做过多此,都不成功,能否请wiliansier 大哥给做个简单的教程
2008-4-14 11:26
0
雪    币: 191
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
有个病毒就是用这个加的壳,烦人!
2008-4-14 14:35
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
我也脱掉了。。。 用ESP定论可以完成脱壳的。  
在00413E67    8D4424 80       lea eax,dword ptr ss:[esp-80]
00413E6B    6A 00           push 0
00413E6D    39C4            cmp esp,eax
00413E6F  ^ 75 FA           jnz short dllexp.00413E6
00413E71    83EC 80         sub esp,-80            // 再这按下F4就可以下来了。接着按F8跳
00413E74  - E9 9963FFFF     jmp dllexp.0040A212
00413E79    0000            add byte ptr ds:[eax],al

-------------------------------------

0040A212    6A 70           push 70      //这里就是入口了
0040A214    68 40B34000     push dllexp.0040B340
0040A219    E8 E2010000     call dllexp.0040A400
0040A21E    33DB            xor ebx,ebx
0040A220    53              push ebx
0040A221    8B3D C8B04000   mov edi,dword ptr ds:[40B0C8]            ; kernel32.GetModuleHandleA
0040A227    FFD7            call edi

如果有错误请大虾指出来
2008-4-14 14:36
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
都是这样的情况啊 !!!!难题吗
2008-4-17 12:11
0
游客
登录 | 注册 方可回帖
返回
//