首页
社区
课程
招聘
[原创]一种新的异常接管方式
发表于: 2016-8-5 23:43 4604

[原创]一种新的异常接管方式

2016-8-5 23:43
4604
最近翻了翻前几年的代码,发现有好多东西都存在记忆的边缘了,所以翻出来复习一下

 

(新的)接管异常方式:  

【Win7x64下测试通过】

//
//Wow64SetupExceptionDispatch函数的目的便是将32位上下文中的程序指针放到全局变量wow64!Ntdll32KiUserExceptionDispatcher

//以便飞到32位NTDLL中的KiUserExceptionDispatcher。

//

//so, 只需要改掉这里的 wow64!Ntdll32KiUserExceptionDispatcher (00000000`7460af80) 就可以控制64位线程的飞往方向

//

00000000`745dc707 8b0d73e80200    mov     ecx,dword ptr [wow64!Ntdll32KiUserExceptionDispatcher (00000000`7460af80)] ds:00000000`7460af80=773c0124                

00000000`745dc70d ff151d58ffff    call    qword ptr [wow64!_imp_CpuSetInstructionPointer (00000000`745d1f30)]



//-> x86汇编:

745dc707 - 8B 0D 73E80200        - mov ecx,[0002E873]



//经过换算  745dc707 + 5 + 0002E873 + 1  即可得出  wow64!Ntdll32KiUserExceptionDispatcher_addr所在地址

//

//最后它修改指向地址即可 *wow64!Ntdll32KiUserExceptionDispatcher_addr = xxxxxx





#直接特征码:


DWORD Ntdll32KiUserExceptionDispatcher_addr =  _Seach("8b0d73e80200");

*(DWORD*)Ntdll32KiUserExceptionDispatcher_addr = MyExceptionDispatch


这样当前进程的异常处理的完全控制权就得到了。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//