开发学院网络安全黑客技术 脱壳基础知识入门之用内存断点找OEP 阅读

脱壳基础知识入门之用内存断点找OEP

 2007-01-15 16:44:16 来源:WEB开发网   
核心提示: 相信很多人到这里已经明白了,为什么在教程中到达了某一个时候,脱壳基础知识入门之用内存断点找OEP(3),某一行的时候,牛人们就叫我们对code段下内存访问断点了吧,那么我们就依靠2次内存断点去找,如果还不行就用多次内存断点,而如果你还要继续问我为什么一定要到那个地方才可以下断呢?我难道不可

相信很多人到这里已经明白了,为什么在教程中到达了某一个时候,某一行的时候。牛人们就叫我们对code段下内存访问断点了吧。

而如果你还要继续问我为什么一定要到那个地方才可以下断呢?我难道不可以一开始就下断吗?

正入我上面所说的,如果你在前面下断很可能壳对code段还没解压完毕呢,这时如果你不停的按F9,你将会看到OD的下方不断的在提示你“对401000写入中断”“对401002写入中断”“对401004写入中断”.......如果你不介意按F9到他把正个code段写完的话,我除了同情你的“F9”以外,没什么其他的意见!

那么我们就没有别更快一点的办法了吗?

有的!那就是我们呼之欲出的两次内存断点办法。

怎么理解两次内存断点呢?

让我来做一个假设吧,假设我是一个壳的作者。一个EXE文件的有code段,data段,rsrc段.....依次排列在你的内存空间中,那么我会怎么解码呢?呵呵~我比较笨一点,我会先将code段解码,然后再将data段解压,接着是rsrc段......那么聪明的你不难发现,只要你在data断或者rsrc段下内存访问断点,那么中断的时候code段就已经解压完毕了。这时我们再对code段下内存反问断点,不就可以到达OEP了吗?

这里注意上面虽然下了两次内存访问断点,但是本质是不一样的,目的也是不一样的。

1.对data段下内存访问断点而中断是因为内存写入中断,目的是断在对对data段的解压时,这时壳要对data段写数据,但是code段已经解压完毕。

2.对code段下内存访问断点而中断是因为内存执行中断,目的当然就是寻找OEP了。

总结一下:如果我们知道壳在什么地方对code段解压完毕我们就可以使用内存断点,找到OEP。如果不知道,那么我们就依靠2次内存断点去找,如果还不行就用多次内存断点。总之明白了原理在多次的内存断点其实都一样。从这个过程中我们了解的是壳在对区段解码的顺序!

上一页  1 2 3 4 5 6 7 8  下一页

Tags:脱壳 基础知识 入门

编辑录入:爽爽 [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接