• 标 题:控制代码--而不是跟随代码--脱壳随想
  • 作 者:kongfoo
  • 时 间:2004年4月11日 11:48
  • 链 接:http://bbs.pediy.com

控制代码--而不是跟随代码--脱壳随想
kongfoo/2004.4.11

  多数情况下,脱壳时跟踪代码通常都是让代码带着走,当然,在不
了解这个壳时只能跟着走。
  控制代码在非常了解壳的代码流程的基础上才有可能实现的。但这
是一种很有用的想法。
  在掌握了壳的流程后,掌握了壳的原理后,你就可以随心所欲地控
制代码流程了,因为你知道了哪些代码根本不需要执行,哪些必需执行。
  两者都要兼备--掌握壳的流程,掌握壳的原理。壳的流程就是指
某个壳的流程,壳的原理却是泛指,加壳器的原理。通常加壳器都一样:
解码、加密、去原程序。只有具体技巧运用不同,有些用特殊指令解码,
有些用驱动解码。。。
  有例子才好理解:对付COOLcryptor的父进程解码。
  在判断是否作为子程序后,程序就要生成子程序并解码了,这时直
接改EIP去解码的代码,执行解码。解码后再改EIP去执行解了码的代码,
这样就完成人为控制解码的操作了。
  另外一个例子:对付用驱动解码的壳。
  解码代码中会有特权指令,执行的话就会蓝屏,第一次跟只能一个
一个地跳过特权指令,跟完解码代码。这时将解码结果保存起来,再来
的时候就可以直接跳过解码的一大段代码,直接去目的地把保存了的代
码打上去。
  控制代码流程,执行需要的代码。感受在代码中任意游走的快意。