第74章 进行破解【求推荐】

  这代表什么,这代表曾经自认为无懈可击的追踪系统,一夜之间被人拿下,他不清楚来者究竟是什么人,但是他知道,这个人的计算机实力不低玄武。

  此刻的冰刀正在对植入的系统进行进一步的研究,其实在他身在交管指挥中心网络当中的时候他就已经对这个系统来了兴趣,因为从这个系统当中可以看的见自己年轻时候的影子。

  冰刀打开虚拟机,进入虚拟系统拷贝软件,准备对植入到计算机的软件进行破解之前的工作,脱壳。

  每一个软件放到市面上运行,都需要对软件进行一样保护措施,那便是加壳,加壳是什么呢,加壳的全称又称为可执行程序资源压缩,加密,是保护文件的常用手段,一个未加壳的程序,可运用破解软件直接查看其软件内的源代码,若是涉及商业机密,代码被盗取,其安全性可想而知。

  加壳,无非就是对程序的一种保护,隐藏壳内的内容,从技术角度出发,壳就是一段执行原始程序前的的代码,这段代码可能被压缩,可能被加密,也就是说,一个程序运行后,优先运行的便是那一段保护壳代码,他把加密后的代码还原成原始程序代码,再把执行权交还给原始代码,这样也就形成了整个程序的保护壳,使得他人无法通过外置接口进行内嵌源码的窥探。

  壳的种类有很多,包括,加密壳,压缩壳,伪装刻,多层壳等等,这些壳的命令核心目的内容,全部都是为了隐藏程序OEP程序入口点和加密的工作。

  现在冰刀对于脱壳的主要目的,也就是在于找到这个程序的入口点。

  入口点,也就是程序的头,都知道一个程序的代码都是由上到下逐行运行,而这个入口点也就是整个程序的第一段代码,找到这个,以下的破解动作就会方便的多了。

  对于软件的破解,说实在的对于冰刀而言还是比较麻烦的,可以想象一个技术水平还停留在十年前的一个老人,现在依靠过去运用的程序在对如今这个高加密手段的软件进行脱壳破解工作,他所面临的挑战可想而知。

  随着虚拟机的加载,冰刀迅速打开工具箱,各样年头较老的脱壳工具全部拖到了桌面,打开OD加载待脱壳破解的软件,随着软件的加载成功,只见窗口出现提示信息。

  “OD加载错误!请关闭重新启动!”

  OD全称Ollydbg反汇编工作最为常用的一种工具,打开后可一直接从中进行脱壳工作,冰刀看着此时工具提示的消息,皱起了眉。

  自检测,防OD?你这个也有些太小儿科了吧,随后,冰刀打开C语言进行程序设计编写。

  通过刚刚的程序运行后的结果,冰刀判断出这个程序的壳为为了防止黑客查探代码入口点,对常用脱壳工具都进行了强制结束进程,以及破坏工具底层文件的操作,对于程序壳这样的操作方式唯一能够解决的方法,也就只有将OD进行进程伪装。

  多年编写病毒的经验让其很快便编写完一套进程隐藏的代码,整个代码的思路就是将主程序注入到别人的进程当中,之后通过线程运行程序,这样主程序的进程将不会存在于进程列表,如此情况下便不会出现OD的错误提示信息。

  编译程序代码,将OD加载到进程隐藏工具中,随后运行OD工具,只听一声鼠标双击的声音传出,桌面上打开一个上部分各样程序按钮,中间一个大下拉框黑底色像是股票走势图的程序出现在电脑桌面,因为没有通过DO加载程序,此时的OD并没出现什么异常反应。

  随后为了检测效果“CTRL+ALT+DEL“打开任务管理器,打开后冰刀迅速滑动鼠标滑轮上下寻找着进程,果然以“OD。EXE”的可执行程序消失了,出现的则是一个“隐藏进程工具。exe”的进程。

  随着隐藏进程程序的运行解决了程序壳第一道防检测的判断,冰刀一切准备妥当,开始加载待脱壳破解的程序,随后按下OD上端加载按钮,按钮按下后电脑屏幕卡顿了半秒的时间,随后,只见屏幕当中刷新来了数万条汇编信息。

  汇编语言可以说是计算机真正的语言,市面上大部分的包括C语言,C++,VB等等一些那都不算是计算机语言,只可以说是程序设计语言,他们的出现可以说方便了很多的程序员的工作,汇编语言因为面对的对象是计算机处理器理解起来较为C等等一些语言更为复杂,所以如今汇编语言被更多的人所遗弃。

  每一种处理器都有自己可以识别的的一套指令,在执行指令时,根据不同的指令动作完成不同的功能,从中改变工作状态,改变外围电路。

  对于冰刀这样的老人,对于汇编语言可以说再熟悉不过,要说年轻的时候,整个操作系统并没现在这般立体,直观,打开一个盘符都要输入数行代码,入侵时熟知汇编可以说是最为基本的。

  因为刚刚的进程检测,已经暴漏了壳的位置,通过汇编信息,找到搜寻进程的代码,按照一个人的正常思维方式,一个加壳命令填写的位置便是整个程序代码的开头,也就是整个程序的OEP。

  按照这样一个思路,冰刀迅速寻找断点,几分钟下来,终于在第三百行找到程序接口以及壳的代码。

  找到接口,剩余的工作可以说变得简单起来,OD自带填充功能,也就是删除代码,以实现程序不执行这段操作,继续运行,但是这种方式只适用于代码与下行代码不产生逻辑关系,若是产生逻辑关系,上行代码填充后,下行代码就会出现语句不符,导致整个程序出现致命错误。

  往往这样的加壳代码语句一般情况下不会出现这样于下行代码呈现逻辑性关系的语句,因为他是相对于程序整体是独立的。

上一章目录+书签下一章