9176324 / Shark

Turn off PatchGuard in real time for win7 (7600) ~ later
MIT License
984 stars 303 forks source link

Win10 1809 (17763.529) 解密后重新加密写入 PG执行解密会有几率错误 #14

Closed wbaby closed 5 years ago

wbaby commented 5 years ago

正常解密后执行应该为 ffffbc87`a61047d3 68cde35aad push 0FFFFFFFFAD5AE3CDh

ffffbc87`a61047d8 c744240487bcffff mov dword ptr [rsp+4], 0FFFFBC87h

ffffbc87`a61047e0 c3 ret

但是触发BugCheck后看到Dump执行代码为 ffffbc87`a61047d3 68cde35aad push 0FFFFFFFFAD5AE3CDh

ffffbc87`a61047d8 c7 ???

ffffbc87`a61047d9 5c pop rsp

ffffbc87`a61047da 2404 and al, 4

ffffbc87`a61047dc 87bcffffc32048 xchg edi, dword ptr [rdi+rdi*8+4820C3FFh]

ffffbc87`a61047e3 894808 mov dword ptr [rax+8], ecx

ffffbc87`a61047e6 55 push rbp

ffffbc87`a61047e7 4154 push r12

ffffbc87`a61047e9 4155 push r13

ffffbc87`a61047eb 4156 push r14

ffffbc87`a61047ed 4157 push r15

解出的代码不对 44被解成5C

wbaby commented 5 years ago

052719-11765-01.zip

Dump文件

wbaby commented 5 years ago

很不错的项目

9176324 commented 5 years ago

暂时找不到原因 在PgSetNewEntry 和 PgSetNewEntryWithBtc 中的DetourLockedBuildJumpCode 处设置__debugbreak() 看下建立的Jump 代码 是不是有问题 目前没有环境 无法测试

wbaby commented 5 years ago

可以确定是PgSetNewEntryWithBtc中 看了 确定DetourLockedBuildJumpCode设置的代码是没问题的

wbaby commented 5 years ago

Win10 1809 (17763.529) 是目前17763.x 最新的补丁

hzqst commented 5 years ago

13 probably the same problem.

如果DetourLockedBuildJumpCode打断点发现代码当时是OK的,那么就是加密回去的时候姿势不对 @wbaby 建议给DetourLockedBuildJumpCode之前打断点看copy进来的代码是不是正确的

9176324 commented 5 years ago

应该可以了

wbaby commented 5 years ago

应该可以了

您好,作者,感谢您的回复 忘记回复了,已经解决,RorKey解的有问题,有多组解的可能

wbaby commented 5 years ago

13 probably the same problem.

如果DetourLockedBuildJumpCode打断点发现代码当时是OK的,那么就是加密回去的时候姿势不对 @wbaby 建议给DetourLockedBuildJumpCode之前打断点看copy进来的代码是不是正确的

您好,hzqst,我认为是一个问题