一些思路
本来写架构时 为了确保一些隐秘的代码,我想到了PatchGuard的一串流程,首先流程是
On pgentry -> CmpAppendDllSection(decrypt context)-> ExQueueWorkItem -> FsRtlMdlReadCompleteDevEx -> MmAllocateIndependentPages/ExAllocatePoolWithTag -> re encrypt context -> Insert New context -> FreePool/Page current context.
看起来就是一串函数,但里面的东西可不是这样的 首选CmpAppendDllSection是全加密的 是执行后一步一解密出来的 然后在call rax,那么CmpAppendDllSection这个代码是否能用于应用层呢,我想到了用易语言试水,由于代码都是x64 所以只能切换环境执行
由于要加密 所以先这样先加密 密钥也是固定了
那么加密后的代码是
解密时
每次解密是8字节
然后里面就有btc运算 解密一些代码 然后在计算你要call的地址
总的来说 可以使用PatchGuard的加密解密的方法实现一些技巧
第二个
在之前发过一个利用映射的方法实现内存页无法被VirtualProtect更改,于是又看到了某个游戏利用这种技术重映射进程模块 导致pe段 代码段都无法被修改
这种确实有相当棒的保护,目前我用易语言还未实现,但原理是是可行的.
loli架构更新的一些东西,可以试着找到加密的 “PatchGuard”:https://share.weiyun.com/EnApgY0M
页:
[1]