-
-
[翻译] 因特尔 PIN, CHEATZ, HAX, AND DETECTION(一)
-
-
[翻译] 因特尔 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来观看内存,访问函数和参数调用,并且一般情况下很好调试。 我们会做一些恶意软件,我发誓。
直到那时,黑客快乐!

_(:з」∠)_:有自知之明的我,知道自己翻译的有很多问题,希望大家可以大胆的指出来,谢谢啦,亲们!
译者:敲代码的猫
原文:
0f1K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3N6A6M7X3!0F1M7$3g2U0i4K6u0W2j5$3!0E0i4K6u0r3j5X3I4G2k6#2)9J5c8U0t1H3x3e0k6Q4x3V1j5I4x3W2)9J5c8X3W2F1N6r3g2D9i4K6u0V1M7r3W2F1i4K6u0V1j5$3S2W2j5i4c8*7i4K6u0V1K9r3q4^5i4K6u0V1j5h3&6V1i4K6u0V1k6r3g2@1k6h3y4@1K9h3!0F1i4K6u0V1M7r3q4J5N6q4)9J5k6o6q4Q4x3V1j5`.
发布日期:2017.1.26
翻译日期:2017.2.13
[培训]科锐逆向工程师培训第53期2025年7月8日开班!