简单判断找到OEP

  • 发表于
  • Crack

有很多刚入门的朋友都有个问题 在刚开始练习脱壳时 怎么判断到达OEP了?
不是只要一个大的跳转(JMP之类的)就可以到达OEP了?那是错的
看过天草的教程应该知道 这个所谓大的跳转不是真正意义上的“大”

而是跨区段的跳转 什么是跨区段的跳转?程序都是有区段的 这个大家都很清楚
至于区段的名字只是为了区别区段的作用 名字是什么这个不是很重要
举个简单的例子吧 我们脱个ASPACK的壳 压缩壳一个 基本入门的朋友都可以搞定
看看一个ASPACK的壳的区段 如下

程序载入的代码是在0040D000这里 如果我们是用单步跟踪法(常用的)去调试这个壳

等走到以下一处代码之后 就会发现程序会跨段跳转了 那个0040D564的retn就是跨段跳转

我们继续单步走到0040D564 然后程序代码会走到如下代码(即OEP)

代码从0040D000到00401000这就是所谓的跨段跳转 也是我们脱壳到达OEP的简单判断

----------------------------------------------------------------------------------

OEP 就是各种编程软件的入口特征,一般有 VC,BC,VB,DELPHI 较为常见

delphi:

——————————————————————————

vc++

————————————————————————————
vb:

————————————————————————————————

bc++