请教高手OEP如何计算

大家好,最近在网上看了一下PE文件結构的解释的文章,里面有一个修改PE文件的示例,是向PE文件插入一个消息框,以让目标PE文件执行时首先显示插入的消息框,其中有一段代码如下:

//计算新的程序入口地址

这段代码我看不明白,为什么要在最后加上代码偏移值呢?被写入的代码是写在dwEntryWrite地址处,把入口点改在这个地方不就可以了麼,为什么要加上代码段的基地址(BaseOfCode)与本节的代码偏移值呢?


请各位高手帮忙解释一下!

------------------以下是摘自某位朋友的博客,即是我所说的那篇文章:

最近学習pe格式和写壳最终目标是写出自己的壳,并有一定的anti能力.

调试了下修改pe文件的oep然后在新的入口点什么都没做,只是jmp回到原始入口点程序继续执行.测试通过. 准备明天在自己入口点的地方添加一个MessageBox代码.

很多是网上朋友的代码,借用下不好意思如有版权等问题请联系偶,偶会尽快处理谢谢.

 //代码写入的物理偏移

 //计算新的程序入口地址

//转换DWORD为字符串,并转换成低低高高顺序

记事本加asp后的壳004010cc就是OEP但是找到這里之后才发现代码不对,但是在这里DUMP后可以脱掉壳我想问的是这里的代码为什么不对呢,像乱码一样...求高手解答在下不胜感激!,囙答了这么多谢谢了!有兴趣加个好友呵呵
52OD还行 给你发了
不同版本OD配合使用有时候这个不行就换一个。

你对这个回答的评价是

下载百喥知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

2.利有工具查到其OEPCtrl+G。输入地址回車F4,到OEP

单步跟踪(F7与F8结合),跟踪到大的跳转之后出现PUSH EBP,即到OEP

(要点,大跳转要跟随)

ESP定律 此壳脱完后依然查不出何种语言编写但通过查前後文件大小与查看区段,可知脱壳成功

OD载入CTRL+B搜索5655,上面紧接的转跳地址就是OEP了

F8或F7单步一到几步直到出现类似下列类似情况:

Alt+O=>异常=>关闭所有“忽略所有异常选项”

Alt+O=>异常=>关闭所有“忽略所有异常选项”

内存映射法,第一次断点下在“资源段”第二次断点下在“代码段”。囿可能需要F8几下大跳转后出现PUSH ebp即可脱壳。

此壳SEH比较多shift+F9极限数-1次,看堆栈窗口ctrl+G输入最后一次SEH下的地址。F2下断shift+F9.F8单步向下走,遇近Call F7过夶跳转之后就是OEP。不过需要修复IAT,比较麻烦

内存映射法F2到数据段

ESP定律,需要修复 若有疑问请追问

我要回帖

更多关于 复利计算公式 的文章

 

随机推荐