-
-
[翻译] 因特尔 PIN, CHEATZ, HAX, AND DETECTION(一)
-
发表于:
2017-3-9 18:50
2654
-
[翻译] 因特尔 PIN, CHEATZ, HAX, AND DETECTION(一)
虽然已经有一段时间,但是我还是在思考这个问题。我发现了新东西,值得一谈。 特别是来自英特尔的二进制仪表实用程序“PIN”。 我们可以充分利用这个工具来在游戏中作弊、解压恶意软件,以及检测您的应用是否正在通过 PIN 运行。
(一)检测 PIN
可能有些人不知道这件事情,英特尔的智囊团发明了一个二进制仪器框架,允许在没有源代码的情况下操作程序。还记得绕道吗?东西基本一样,只不过这样更便宜(免费),更多的文档和跨平台(Linux,Windows,ARM,Android等)。
PIN使我可以在没有来源的情况下监视程序,打破他们,修复他们。 我将在下面的章节中详细介绍这一点。 当我在玩PIN时,我自己在想,“软件如何检测PIN的存在?”。 毕竟,共享对象/ dll是从名为“pinvm”的东西导入的。
你在PIN中运行一个程序,然后它似乎作为子进程启动。
然后它攻击我的枚举针模块的加载模块。听起来很简单吧?简单的像这些代码一样。
不幸的是,生活从来不简单。 正如我们所看到的,当我们的.net应用程序串联运行PIN时,我们没有得到任何结果:
它缺少 pinvm.dll 模块,而且似乎会在加载后释放这个模块。
起初我想,也许这是一个.net的东西; 也许我应该尝试另一种方式:使用 EnumProcessModules 的枚举过程模块。 然后我再次使用了Module32First / Next。 但这并没什么用。
经过一些搜索/磁头敲击,我发现了我所需要的 - 卸载模块的列表。Windows 一直跟踪着所有加载和卸载的模块。它通过使用 API RtlGetUnloadEventTraceEx 来实现这一点,它足够用来存储包含我们想要的模块的结构数组。在这个例子代码中 ProcessHacker有我支持的代码。但它需要一些正经的黑客去做。
这是我想出的(使用Visual Studio)用于查看卸载的模块。
当您查看通过 PIN 运行的应用程序的加载模块时,Process Hacker会使用此代码。
现在我们知道如何检测PIN,我们可以防止它的使用。
PIN 是一个非常棒的工具,具有各种用途,但对于这个第一博客,我想我会看到我们如何检测其使用。 目前我从来没有见过任何恶意软件或合法软件检查使用PIN,但我们将会看到。
请继续关注第2部分,当我们深入使用PIN来观看内存,访问函数和参数调用,并且一般情况下很好调试。 我们会做一些恶意软件,我发誓。
直到那时,黑客快乐!
_(:з」∠)_:有自知之明的我,知道自己翻译的有很多问题,希望大家可以大胆的指出来,谢谢啦,亲们!
译者:敲代码的猫
原文:
http://www.gironsec.com/blog/2016/12/intel-pin-cheatz-hax-and-detection-part-1/
发布日期:2017.1.26
翻译日期:2017.2.13
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法