首页
社区
课程
招聘
[求助]一个UPX壳,从3DB开始37个字节被修改,如何修复
发表于: 2013-10-18 09:25 9670

[求助]一个UPX壳,从3DB开始37个字节被修改,如何修复

2013-10-18 09:25
9670
目前情况是这样的。。

我这里得到一个被UPX加壳的程序,是个ARM下的程序,但是我的IDA有问题,不能动态调试,所以,我想直接给它脱壳。

问题就来了。

这个程序,被人修改过了,从文件偏移0x3DB开始37字节,被人修改成全部为00了,这样UPX自身也就无法识别这个壳的。

我可以手动修复,从0x3DB开始的5字节为  版本号\0 如 "3.91\0" 。后面紧接着四字节是 "UPX!" 。但是后面剩下的28字节到底是什么,就不清楚了。

请问,谁能告诉我这数据,到底是什么吗。

能想的办法都想了,无奈,个人水平不行,网上有一个WinCE下的UPX壳脱壳工具,但是使用了之后,我的程序区段没有恢复,而且脱壳的程序也不能运行了。

那28个字节,实在不好猜,我上网找了很久很久,也才发现 UPX! 之后的 两字节似乎是什么长度,而和程序看起来,没看出多大联系,可能我自身水平太差。再之后的一字节,是压缩方式吧,和最后一个字节是配对出现的,但是经过实际压缩查看,也不是这么回事。

带壳调试运行不起来,我用IDA5.5+ActiveSync+微软CE6SDK自带的WinCE6模拟器。程序就是不能调试。

现在都愁死了。不知道怎么好了。

ARM 下没有ESP,只有个R13,小名SP,也是保存堆栈信息的,但是问题在于目前不能动态调试,所以我什么办法都没有。

XP下不能运行,ARM平台下,WinCE系统可以运行,但是需要一大堆数据文件,特别费事。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
直接用脱壳脚本不行么
2013-10-18 11:06
0
雪    币: 1372
活跃值: (5338)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
3
用以往的版本+一下,对比看看是什么呗。找找规律什么的
2013-10-18 11:46
0
雪    币: 1632
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
脱壳机不行就esp定律呗。
2013-10-18 17:03
0
雪    币: 239
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
XP能运行吗
可以的话发下程序玩玩
2013-10-18 18:18
0
雪    币: 627
活跃值: (663)
能力值: ( LV9,RANK:270 )
在线值:
发帖
回帖
粉丝
6
最近也在学习UPX,弄了个ODbgScript的完美脱壳脚本,正在进行最后的测试,一两天内会发出来。

会具体讲这个头部数据的结构及含义。UPX的"-d"选项依赖它来解压缩,程序运行完全不需要它。
我的脚本类似"-d"选项的功能,但不需要这个头。在楼主遇到的情况下,"-d"选项无法使用,而脚本可进行完美脱壳。不过目前脚本只支持win32/pe。

UPX本身是开源的,可先查一下源码中的ARM部分。貌视IDA下有UPX的脱壳脚本,但不知是否适用于ARM。
2013-11-13 09:04
0
游客
登录 | 注册 方可回帖
返回
//