OD脱壳UPX设置硬件断点后转储文件无法运行
问题如下:脱壳的时候我下了硬件断点:参照逆向工程核心原理这本书,在PUSHAD的下一步查看ESP,OD的左下角goto到esp指向的地址,然后右键下硬件断点。
这样再运行很容易就直接定位到了POPAD,看起来都挺顺利的,很容易找到了OEP的位置。
但是内存转储出来的exe打开无效果不运行,在110版本的OD中提示:“has entry point outside the code(as specified in the PE header)”。110和吾爱班版都一样无法运行,双击exe程序也没效果。
110和吾爱班版都一样无法运行,双击exe程序也没效果。
晚上我和同学讨论了下,他可以正常脱壳,我看到他是直接F8一点点一点点的找,最后找到POPAD的位置,或者CTRL+F直接搜索POPAD然后找到地址,dump。
没有下断点,我也用他的电脑试了下,这样不下断点纯靠找地址直接dump可以。
但是我在他的电脑上也这样设置硬件断点之后,就和我的状况一样了(打开转储的文件运行无果)。后来我取消硬件断点,把硬件断点都删除,直接dump,因为OEP的地址一直都是1332。也不行了。
有点感觉被那个断点污染过之后就不可以了。
请问有人知道这是怎么回事吗?明明看到很多博客都是这么做的,他们看起来都没有问题。
这种方法转储的文件也无效。。。 这是直接ctrl+f搜索popad然后就看见OEP,直接dump后打开程序的效果··· 本帖最后由 zero呆 于 2019-10-24 11:15 编辑
确定OEP找对了?如果对了就 修复下IAT试试 OEP 应该是 0x401332,但你第一次的脱壳时机不对吧,怎么说也先跑到 0x401332 再 dump
EIP 还在壳段就dump当然有问题
xp 下 dump 和 修复,推荐 LordPE ,ImportREC 换了在虚拟机WIN7或者xp就没问题了。。。 有人知道OD重建输入表方式1和方式2的区别吗?发现在xp系统方式1可以,方式2不可以运行。 wu0o0pj 发表于 2019-10-24 12:00
OEP 应该是 0x401332,但你第一次的脱壳时机不对吧,怎么说也先跑到 0x401332 再 dump
EIP 还在壳段就dum ...
这个,OD插件那个页面是有基地址的好像不用是401332。然后试了下,跳不跳过去,只要EIP写对都可以。就是dump出来的文件,在我自己的win64无法执行,同学的可以。然后我换在w7系统可以,xp系统重建输入表方式1可以,方式二不可以。
晕了。 江湖OneCat 发表于 2019-10-24 14:59
这个,OD插件那个页面是有基地址的好像不用是401332。然后试了下,跳不跳过去,只要EIP写对都可以。就是d ...
嗯,非老鸟建议还是走到原始OEP再dump,毕竟各个寄存器初始值是很可能影响运行的
dump 后 用 ImportREC 修复 IAT 试试
再不行,看看是不是 开启了 ALSR,把它关了
页:
[1]