本篇文章3125字,读完约8分钟
逆向工程
玩游戏吗? 你采用过独立游戏、游戏补丁和评级吗?
逆向工程又称逆向工程,是产品设计技术的再现过程。 即逆向分解研究某一目标产品,演绎推导出该产品的解决流程、组织结构、功能特征及技术规格等设计要素,从而产生功能相似但不完全相同的产品。 逆向工程源于商业和军事行业的硬件解体。 其首要目的是在不能轻易获得所需生产新闻的情况下,从成品中直接分解,从而导出产品的设计原理。
另一方面,软件逆向工程随着计算机技术在各行业的广泛应用,特别是软件开发技术的迅速发展,基于某软件,以反汇编浏览源代码的方法将其数据结构、体系结构和 逆向工程的目的是研究和学习先进的技术,特别是在手头没有合适的文档,需要实现软件功能的情况下。 因此,许多软件为了垄断技术,要求客户在安装软件之前不要反向考虑。
而且,这是重点。 逆向工程的实施过程是一个多行业、多学科的协同过程。
/ s2/ ]让我们以此为解
首先,我要声明几件事。 本文全部只是技术探讨,不包括攻击性和否定性的性侵犯。 我很喜欢俄罗斯方块,其中俄罗斯更火爆。 我记得当时练习俄罗斯方块,试图活跃在3v3竞技中。 但是,没有预想到高级棋手非常多。 秒我马上就来了。
现在该怎么办?
如果我有一个传说中的神兵,不就能扭转这种狼狈的局面吗? 嗯,兴趣,很感兴趣。 那么,我们开始制造兵器制作一个。 传说中俄罗斯方块补助怎么样?
首先,要创造补助,就必须介入计划。 如何介入?
远程注入dll!
dll的远程注入技术是目前win32病毒广泛采用的技术。 采用该技术的病毒通常位于一个dll中,在系统启动时,exe程序将该dll加载到某些系统进程(如explorer.exe )中执行。
因此,普通的进程管理器并不容易发现这种病毒。 另外,即使发现了也不容易清除。 因为除非病毒寄生的进程结束,否则这个dll不会从内存中卸载。
无法从资源管理器中删除此dll文件。 正是一石二鸟。 我记得2003年qq尾巴病毒肆虐的时候,已经有几个尾巴病毒变种采用了这个技术。 需要理解以下api函数。
这里只显示了简单的函数证明,有关函数的详细功能和介绍,请参照msdn。 另外,关于代码,本文不贴代码,只讲技术。 如果有有趣的事请自己谷歌。
这样,就可以将自己编写的dll注入到制作俄罗斯方块的过程中,同时执行。
在dll中实现了什么?
dll需要实现的是一组基于人工智能的俄罗斯机器人。 我们假设超高智商的lib已经被引入我们。 那么,dll还需要一点实现模拟控制的方法。 你还需要什么? 你可能需要知道现在的方块的样子,下一个方块的样子,现在自己的配置的样子,甚至对方的配置的样子,自己拿到那些工具。
这些数据是怎么来的?
识别图像,截图当前窗口,根据x y的坐标开始分解。 通过图像识别的方法,获取当前块的样子、自己所处的样子、对方的样子。
这样可以吗?
这是一个直观的方案,但是每次都必须扫描,比较图像,获取数据。 直觉上,你觉得那很快吗? 效率高吗? 假设有这些数据,你会做什么? 当然是采用移动块、变形块、掉落块、工具。 怎么做? 很简单。 按下模拟鼠标的键盘按钮进行操作就可以了。
这套看起来是个好主意。 no,这样做的,最多只是一个兵器,要叫神兵,我觉得还有一点距离! 那么,如果是神兵的话,应该怎么做呢?
拆开内存,从里面找到现在的块,自己排列的样子,对方的样子。 分解程序,开发者实现操作函数,同时调用这些函数。 所以呢? 看起来很深奥,可以吗?
逆向工具
在这里,我只为大家普及工具,不一一演示,只做简单的介绍和证明。
静态分解工具ida、交互式反汇编器专业版( interactive disassemblerprofessional )经常被称为ida pro,或简称为ida,是比利时列日市( liè; ge )的hex-rayd企业的产品。 开发ida的是一个叫ilfak guilfanov的编程天才。 10年前诞生的时候,ida是基于控制台的ms-dos APP应用程序,这些都非常重要,因为它有助于理解ida客户界面的本质。 除其他副本外,ida的非windows和非gui版仍在使用原始的dos版控制台格式的接口。
动态调试工具包括od(ollydbg )和windbg。 APP层程序可以使用两个调试器。 od主要朝向相反的方向,窗口布局合理、直观、插件多,因此通常优先选择od。 windbg没那么方便。 大多数操作都是通过命令进行的,但也有其特点,各种命令(内置命令、元命令、扩展命令)提供强大的控制和分解能力,所以有时也使用windbg。 如果调试内核和模块,od将无能为力。 windbg可以说是唯一的选择。 以前也有softice,但softice停止了更新和支持。 现在已经没什么用了。
虽然是壳工具peid,但实际结果是对工具进行了独特的分解。 脱壳,尽量手动。 二进制工具ultraedit、hex workshop、winhex、比较工具beyond compare。 互联网数据包捕获工具wireshark和iris。 文件和注册表监视工具进程监视器。 最后,虚拟机,虚拟机是不二的。
反方向
有了工具,我们就可以开始逆向分解火俄了。 反方向是一个多、复杂、繁琐的过程。 经历无数尝试,代码分解,逻辑分解。 如果是分解游戏的话,如果是游戏开发者的话,思考方式可能会更广泛,懂一点开发者的正常思考。
那么这个游戏,我们拿到的是那里吗?
在od中加入俄罗斯方块,找出游戏初始化这个关键点。
从通常的开发立场考虑,初始化时一般会清除空数据。 无论是从互联网还是从本地,都将指定框的格式。 然后从这里开始,我很快就找到了一些内存地址。 这些地址将提供当前块的格式,预测下一个块的格式,并提供当前放置的游戏池的格式。 然后,马上寻找控制移动的地方。 很快,从按钮上得到了一点消息,我找到了。
其中,所有落在下面的四边形,在od中都可以看到他的存储器格式,其中显示红色的是被变更了的数据。 什么数据被更改了? 就是要明确落后的方块。 数字表示正方形的颜色。 也可以说是方形格式。 内存中的分布如图所示。
然后,通过将dll注入进程,制作了插件。 照片展示了插件行业的格式。
其中,已经预知了以下几个模块的格式,同时得到游戏盘的数据,auto自动开始游戏。 测试了,效果很好。
结束了吗? [/s2/]
其实反方有很多高深的奥秘。 我也只是个初级者。 现在,大部分程序都有点反调。 同时在自己的程序中加入了一些壳。 简单地说,世界闻名的高强度壳有vmprotect、themida、se (safengine )等。 其中tw(ThemidaWinLicense )当时让我头很大,他的反调很感兴趣。 另一方面,游戏方面,腾讯的TP(tenprotect )、韩国企业的hs ) hackshield )、nexon的ngs ) nexon )、完美的pp等很多游戏都参与了驱动器级别的保护。
虽然目前安全性越来越受到重视,但企业安全反向集团通常会对病毒样本进行一些分解和企业产品的保护。 这是一个博大精深的世界,里面很有兴趣,也有挑战。 所以,一文简要的介绍,希望能吸引你进入。 就是这个美妙的边界区域。
作者: garfield是逆向行业的初学者,目前在积分融合技术社交小组工作。
本文起源于点融黑帮(微信号) dianrongmafia )。 这是网络技术类微信号,汇聚了各路创业者大牛。
原创文案,作者:点融黑帮,转载请注明出处: 36kr/p/5041770
来源:UI科技日报
标题:“逆向拆析,计算机世界中的九阴真经”
地址:http://www.ulahighschool.com/uiitzx/1441.html