首页
社区
课程
招聘
[旧帖] [求助]UPX的壳,修复和修补附加数据后,依然运行出错[已经解决,请看5楼] 0.00雪花
发表于: 2008-7-1 12:46 3843

[旧帖] [求助]UPX的壳,修复和修补附加数据后,依然运行出错[已经解决,请看5楼] 0.00雪花

2008-7-1 12:46
3843
[已经解决,请看5楼]

UPX的壳,修复和修补附加数据后,依然运行出错

UPX 0.89.6 - 1.02 / 1.05 - 1.24 (Delphi) stub -> Markus & Laszlo [Overlay]

最近拿UPX练手,请脱壳高手看看,最好把脱壳后能正常使用的程序打包发上来

004EEBB0 >  60              PUSHAD
004EEBB1    BE 00304900     MOV ESI,UltraSea.00493000
004EEBB6    8DBE 00E0F6FF   LEA EDI,DWORD PTR DS:[ESI+FFF6E000]
004EEBBC    C787 D4140B00 A>MOV DWORD PTR DS:[EDI+B14D4],3E79DAAA
004EEBC6    57              PUSH EDI
004EEBC7    83CD FF         OR EBP,FFFFFFFF
004EEBCA    EB 0E           JMP SHORT UltraSea.004EEBDA

0012FFA4  7C930738  ntdll.7C930738 下硬件访问断点

到达 004EED1B  ^\E9 D4F4FBFF     JMP UltraSea.004AE1F4

F8一下,到达OEP

004AE1F4    55              PUSH EBP
004AE1F5    8BEC            MOV EBP,ESP
004AE1F7    83C4 F0         ADD ESP,-10
004AE1FA    53              PUSH EBX
004AE1FB    33C0            XOR EAX,EAX
004AE1FD    8945 F0         MOV DWORD PTR SS:[EBP-10],EAX
004AE200    B8 3CDF4A00     MOV EAX,UltraSea.004ADF3C

IMPRORTREC 1.6f 进行修复, OEP:AE1F4
抓取,修补好后,LORDPE原加壳程序,发现末尾:5C200+2400之后有几个字节的附加数据,用WINHEX进行补数据区段

保存,运行,可以运行,但是使用程序功能的时候,出错.关闭程序时候也出错,找到出错项目,跟读取内存有关,我就不知道怎么处理了,请脱壳高手们帮个忙,一起看看

谢谢了

[已经解决,请看5楼]

附件已经移除 想下来练习的,可以参考截图

[课程]Linux pwn 探索篇!

上传的附件:
  • 1.JPG (91.55kb,68次下载)
收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
ESP直接脱,于是就只有退出的时候提示错误了。
上传的附件:
2008-7-1 13:05
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
ESP也好,单步手动脱也一样,都要出错,奇怪了,请帮忙看看
2008-7-1 13:10
0
雪    币: 82
活跃值: (10)
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
4
脱壳后出现明显anti,要补段,注意段名。启动验证。
2008-7-1 14:12
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
补段早就补了,现在找出问题根源了:
程序有自校验,可恶的是自校验的结果是直接异常,让你不小心就想不到问题,还以为脱壳哪里没修复
在风涧仁的提示下,我们可以总结了如下要求:

1,要补区段,否则无法通过自校验
2,程序偏移1F9出储存程序大小数据,脱壳后要把现在的大小转成十六进制,将此数据替换到1F9处

这样就算脱壳完成了,不需要优化大小 今天就到这里吧,研究该程序的自校验还真的经典,还可以直接断在获取文件大小的函数上,不久就可以看到这些代码了

Found commands
地址       反汇编                                    注释
004A2B18   MOV EDX,1F9
004A2E96   MOV EDX,1F9

第一处:
004A2B13    B9 04000000     MOV ECX,4
004A2B18    BA F9010000     MOV EDX,1F9
004A2B1D    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
004A2B20    E8 8F15F6FF     CALL 搜索.004040B4
004A2B25    A1 5C0B4B00     MOV EAX,DWORD PTR DS:[4B0B5C]
004A2B2A    E8 6D8CFDFF     CALL 搜索.0047B79C
004A2B2F    8BD8            MOV EBX,EAX
004A2B31    8D55 F4         LEA EDX,DWORD PTR SS:[EBP-C]
004A2B34    8BC3            MOV EAX,EBX
004A2B36    E8 C963F6FF     CALL 搜索.00408F04
004A2B3B    8B55 F4         MOV EDX,DWORD PTR SS:[EBP-C]
004A2B3E    B8 5C0B4B00     MOV EAX,搜索.004B0B5C
004A2B43    E8 3811F6FF     CALL 搜索.00403C80
004A2B48    A1 5C0B4B00     MOV EAX,DWORD PTR DS:[4B0B5C]
004A2B4D    E8 1664F6FF     CALL 搜索.00408F68

第二处:
004A2E91    B9 04000000     MOV ECX,4
004A2E96    BA F9010000     MOV EDX,1F9
004A2E9B    8B45 F8         MOV EAX,DWORD PTR SS:[EBP-8]
004A2E9E    E8 1112F6FF     CALL 搜索.004040B4
004A2EA3    8B45 F8         MOV EAX,DWORD PTR SS:[EBP-8]
004A2EA6    E8 F188FDFF     CALL 搜索.0047B79C
004A2EAB    A3 6C0B4B00     MOV DWORD PTR DS:[4B0B6C],EAX
004A2EB0    A1 6C0B4B00     MOV EAX,DWORD PTR DS:[4B0B6C]
004A2EB5    3B05 680B4B00   CMP EAX,DWORD PTR DS:[4B0B68]
004A2EBB    0F94C3          SETE BL
004A2EBE    33C0            XOR EAX,EAX
004A2EC0    5A              POP EDX
004A2EC1    59              POP ECX
004A2EC2    59              POP ECX
004A2EC3    64:8910         MOV DWORD PTR FS:[EAX],EDX
004A2EC6    68 EB2E4A00     PUSH 搜索.004A2EEB
004A2ECB    8D85 A4FEFFFF   LEA EAX,DWORD PTR SS:[EBP-15C]
004A2ED1    BA 02000000     MOV EDX,2
004A2ED6    E8 750DF6FF     CALL 搜索.00403C50
004A2EDB    8D45 F8         LEA EAX,DWORD PTR SS:[EBP-8]
004A2EDE    E8 490DF6FF     CALL 搜索.00403C2C
004A2EE3    C3              RETN

接下来的破解程序应该是很简单的了,我们也不继续研究了.大不了爆破,不是吗?
2008-7-1 15:15
0
雪    币: 82
活跃值: (10)
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
6
注意有个pid检查,错了会把od关掉。
2008-7-1 15:17
0
游客
登录 | 注册 方可回帖
返回
//