首页
社区
课程
招聘
[求助]notepad手动脱壳求助!
发表于: 2008-5-8 20:21 3942

[求助]notepad手动脱壳求助!

2008-5-8 20:21
3942
我用upx203w给notepad加了个壳,然后用ollyice载入。

偷了个懒,直接查找popad.....结果看到了大跳转jmp 0100739D,我相信这就是程序真正的入口点,因为这个地址就是不加壳的notepad的入口地址

于是在该行下断,然后重新载入,按运行...中断后打开LordPE找到该进程,点右键选择dump full,转存为notepad_dumped.exe。

终止原进程,载入notepad_dumped.exe,文件基址为01000000,于是改入口地址为0000739D,保存退出。

可是程序还是不能运行

用LordPE查看区段,还是有UPX0,UPX1两个区段存在。

我是菜鸟,第一次学脱壳,请大家告诉我以上步骤什么地方出错了,谢谢!

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
2
必须跑到入口再DUMP

跑到入口前,壳没有完全释放程序的内容,什么也DUMP不到
入口之后DUMP则把程序的初始化值也保存下来了

例如程序中有下面语句

if (!p)
{
p = malloc(100);
}

当P是全局变量时,DUMP会把P的值也保存,如果程序作者没初始化,那么根本就不会申请内存给指针P,后面对指针P的访问会引起异常
2008-5-8 20:27
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢指教!

我按你说的用ollyice跑到入口,也就是下一步,0100739D处。然后再用LordPE转存,但是结果还是不能运行。

另外,我用LordPE自带的比较器对比了一下两次dump出来的文件,结果完全一致。

请再帮我看看,我是纯粹的菜鸟,也许是哪个不起眼的地方搞错了。
2008-5-8 20:40
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
另外,我想问问。

脱完壳的程序是不是不应该存在UPX0和UPX1这两个区段了?
2008-5-8 20:42
0
雪    币: 7309
活跃值: (3778)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
5
你没修复导入表
2008-5-8 21:20
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
呵呵,对的。修复了就好了。
2008-5-9 00:39
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
首先  你OEP没有找正确,可以试一下ESP定律,很爽的应该一下就能脱掉.我也是笨鸟,但我脱UXP壳不下10回了,你就用ESP定律吧,
2008-5-10 01:38
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
脱壳后一般都要修复下的
2008-5-10 12:46
0
游客
登录 | 注册 方可回帖
返回
//