标准黑客案例。 Hack文件类型注入已启动的进程,并使用WriteProcessMemory调用写入进程内存。在游戏中,这不是你想要的东西,因为它可以让黑客改变游戏的部分并给自己一个优势。
有可能强制用户与游戏一起运行第三方程序,我需要知道防止此类注入的最佳方法是什么。我已经尝试使用函数EnumProcessModules,它列出了所有进程DLL但没有成功。在我看来,黑客直接注入进程内存(堆栈的末尾?),因此它未被检测到。目前我已经找到了一些选择。
创建大多数已知公共黑客的文件,文件模式,进程名称和内存模式的黑名单,并使用该程序扫描它们。这个问题是我需要维护黑名单,并创建程序的更新以保存所有可用的黑客。我也发现了这个有用的答案Detecting memory access to a process,但有些现有的DLL可能已经在使用这些调用,因此可能存在误报。
使用ReadProcessMemory监视众所周知的内存偏移量的变化(黑客通常使用相同的偏移来实现某些目标)。我需要运行一些黑客,监控行为并获得与正常运行相比的黑客行为样本。
是否可以在启动后以某种方式重新排列进程内存?也许只是将进程内存推入堆栈可能会混淆黑客。 这是黑客通话的一个例子:
WriteProcessMemory的(phandler,0xsomeoffset,&安培; datatowrite,...);
因此,除非黑客能够更加智能地搜索过程的实际开始,否则它将取得巨大成功。我想知道是否有一个系统调用可以将内存重写到另一个位置或以某种方式在堆栈前插入一些空数据。
那么,最好的方法是什么呢?这是编程中一个非常有趣和黑暗的区域,所以我想尽可能多地听到有趣的想法。目标是防止黑客攻击或检测它。
祝你好运
答案 0 :(得分:0)
一次又一次计算存储在内存中的应用程序映像的散列或CRC,并将其与已知散列或CRC进行比较。
我们的服务http://activation-cloud.com提供了根据存储在数据库中的签名检查应用程序完整性的功能。