首页
社区
课程
招聘
[求助]关于UPX脱壳及softice的一些问题
发表于: 2007-7-22 19:46 5220

[求助]关于UPX脱壳及softice的一些问题

2007-7-22 19:46
5220
运行环境win2k sp2
目标软件win2k下的notepad.exe
我刚接触pj,现在在学手动脱壳,顺便学习一点简单的汇编语言。我开始学的是脱UPX的壳,在脱UPX Graphical 1.33+Scrambler和upx shell v0.98和upxshell 3.0和upx3.42壳中我发现他们的思路基本上是一样的,都跟我脱UPX Graphical 1.33+Scrambler是一样的,包括OEP(01006420)都是一样的.思路都是ctrl+f查找popad(我想这应该就是传说中的特征码)然后F4,然后F7进入jmp后程序跳转(记住jmp后的地址。地址是01006420也就是程序的OEP)到跳转后的地址处用loadpe脱壳,脱壳后的文件不能运行,有错误,再修复输入表后,完成脱壳。奇怪的是我听说jmp后的地址就是OEP,但是用import时并不可以,提示无效的OEP,与内存中的地址不符。
后来开始找资料解决,然后在看雪老师的《加密与解密》一书中,发现其实这个OEP填写的是OEP的RVA。也就是OEP-ImageBase.于是开始找ImageBase,我嫌麻烦也就没用什么工具,直接用OD脱壳,然后在弹出的窗口中发现了了一个起始地址,这个应该就是基地址了,然后RVA就用OEP-ImageBase算出来了。然后修复,OK了。

但是在脱upx3.42我发现有点与前面几个不一样。
我搜索popad后,下面的代码如下
0101155D   61          popad
0101155E   8D4424 80   lea eax,dword ptr ss:[esp-80]
01011562   6A 00       push 0
01011564   39C4        cmp esp,eax
01011566  ^75 FA       jnz short NOTEPAD.01011562
01011568  -E9 B04EFFFF jmp NOTEPAD.01006420
可以发现下面有一个跳转,我在0101155D用F4之后再用F7跟入后到不了01011568这,会在01011566和01011562来回循环,我没办法只有把它给nop掉,nop掉之后程序可以到达
01006420   55          push ebp
这后,我然后用loadpe脱壳,脱壳后的文件不能运行,有错误,再修复输入表后,完成脱壳。(其实可以不用loadpe脱直接用OD就可以脱,而且OD也顺便帮你修复输入表了,这里这样做只是为了多锻炼一下,谁叫我菜呢)
我的问题是这个小循环被我nop掉以后对程序有什么影响呢?我经常能看见免杀的过程中很多nop的操作,这对文件都会产生哪些影响呢?还有可不可以不nop啊?没办法,刚学,好多都不懂,只好nop了^&^

还有就是怎样修改调试的程序保存后,重新载入然后让它重新分析。我查看论坛里的一篇文章《OD常见问题中》我找到了相关的内容:原文如下

Q:OD现在有一个毛病,一旦修改了调试的程序并保存后,重新载入后OD就会重分析程序,原来保存的Udd文件就失效,给调试带来很大不便。
A:问题在这:Olly Advaced 插件,附加选项Ⅱ /忽略被修改的断点处内存(4st0ne回答)

我发现我跟他的问题正好相反,我是不想保存,他是想保存,但是我打开OD,在插件菜单里怎么也找不到Olly Advaced 插件。这是为什么呀?我用的是cao_cong汉化翻译的中文版OD,v1.10。

还有我装DriverStudio3.2中的softice后,启动运行start softice一开始弹出个cmd窗口,没几秒钟,一闪就没了,再重新运行就提示error code 1056,配置的实例已在运行中。please check the Event Viewer for more information.这是怎么回事啊

刚学PJ,连菜鸟都算不上,问的白痴问题,请大家不要笑^&^

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
大家能帮下忙吗
2007-7-23 18:49
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
脱UPX的时候不要NOP,看到POPAD下面的- JMP *****直接点一下,F4,F7,脱了就OK了
2007-7-23 22:04
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
Q:OD现在有一个毛病,一旦修改了调试的程序并保存后,重新载入后OD就会重分析程序,原来保存的Udd文件就失效,给调试带来很大不便。
A:问题在这:Olly Advaced 插件,附加选项Ⅱ /忽略被修改的断点处内存(4st0ne回答)

我发现我跟他的问题正好相反,我是不想保存,他是想保存,但是我打开OD,在插件菜单里怎么也找不到Olly Advaced 插件。这是为什么呀?我用的是cao_cong汉化翻译的中文版OD,v1.10。  

你删了相对的Udd文件就可以了。
2007-7-24 08:50
0
雪    币: 47147
活跃值: (20410)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
5
置顶帖里有
Q:OD为什么删除了断点,重新加载的时候,这些断点都会重新出现
A:设置ollydbg.ini,将配制文件里改成如下:Backup UDD files=1
2007-7-24 09:22
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
见到老大了
谢谢大家了
2007-7-24 19:14
0
游客
登录 | 注册 方可回帖
返回
//