通过刚刚的程序运行后的结果,冰刀判断出这个程序的壳为为了防止黑客查探代码入口点,对常用脱壳工具都进行了强制结束进程,以及破坏工具底层文件的操作,对于程序壳这样的操作方式唯一能够解决的方法,也就只有将OD进行进程伪装。
多年编写病毒的经验让其很快便编写完一套进程隐藏的代码,整个代码的思路就是将主程序注入到别人的进程当中,之后通过线程运行程序,这样主程序的进程将不会存在于进程列表,如此情况下便不会出现OD的错误提示信息。
编译程序代码,将OD加载到进程隐藏工具中,随后运行OD工具,只听一声鼠标双击的声音传出,桌面上打开一个上部分各样程序按钮,中间一个大下拉框黑底色像是股票走势图的程序出现在电脑桌面,因为没有通过DO加载程序,此时的OD并没出现什么异常反应。
随后为了检测效果“CTRL+ALT+DEL“打开任务管理器,打开后冰刀迅速滑动鼠标滑轮上下寻找着进程,果然以“OD。EXE”的可执行程序消失了,出现的则是一个“隐藏进程工具。exe”的进程。
随着隐藏进程程序的运行解决了程序壳第一道防检测的判断,冰刀一切准备妥当,开始加载待脱壳破解的程序,随后按下OD上端加载按钮,按钮按下后电脑屏幕卡顿了半秒的时间,随后,只见屏幕当中刷新来了数万条汇编信息。
汇编语言可以说是计算机真正的语言,市面上大部分的包括C语言,C++,VB等等一些那都不算是计算机语言,只可以说是程序设计语言,他们的出现可以说方便了很多的程序员的工作,汇编语言因为面对的对象是计算机处理器理解起来较为C等等一些语言更为复杂,所以如今汇编语言被更多的人所遗弃。
每一种处理器都有自己可以识别的的一套指令,在执行指令时,根据不同的指令动作完成不同的功能,从中改变工作状态,改变外围电路。
对于冰刀这样的老人,对于汇编语言可以说再熟悉不过,要说年轻的时候,整个操作系统并没现在这般立体,直观,打开一个盘符都要输入数行代码,入侵时熟知汇编可以说是最为基本的。
因为刚刚的进程检测,已经暴漏了壳的位置,通过汇编信息,找到搜寻进程的代码,按照一个人的正常思维方式,一个加壳命令填写的位置便是整个程序代码的开头,也就是整个程序的OEP。
按照这样一个思路,冰刀迅速寻找断点,几分钟下来,终于在第三百行找到程序接口以及壳的代码。
找到接口,剩余的工作可以说变得简单起来,OD自带填充功能,也就是删除代码,以实现程序不执行这段操作,继续运行,但是这种方式只适用于代码与下行代码不产生逻辑关系,若是产生逻辑关系,上行代码填充后,下行代码就会出现语句不符,导致整个程序出现致命错误。
往往这样的加壳代码语句一般情况下不会出现这样于下行代码呈现逻辑性关系的语句,因为他是相对于程序整体是独立的。