//ESI为新线程的ETHREAD,EDI为旧线程的ETHREAD。
nt!SwapContext:
8086dce0 0ac9 or cl,cl
8086dce2 26c6462d02 mov byte ptr es:[esi+2Dh],2
8086dce7 9c pushfd //<---------旧线程的ESP-4
8086dce8 8d8b40050000 lea ecx,[ebx+540h]
8086dcee e8ddafffff call nt!KeAcquireQueuedSpinLockAtDpcLevel (80868cd0)
8086dcf3 8d8b38050000 lea ecx,[ebx+538h]
8086dcf9 e8feafffff call nt!KeReleaseQueuedSpinLockFromDpcLevel (80868cfc)
8086dcfe 8b0b mov ecx,dword ptr [ebx]
8086dd00 83bb9409000000 cmp dword ptr [ebx+994h],0
8086dd07 51 push ecx//<---------旧线程的ESP-4
8086dd08 0f8583010000 jne nt!ScPatchFxe+0x3c (8086de91)
8086dd0e 833d6cc5888000 cmp dword ptr [nt!PPerfGlobalGroupMask (8088c56c)],0
8086dd15 0f854d010000 jne nt!ScPatchFxe+0x13 (8086de68)
8086dd1b 0f20c5 mov ebp,cr0
8086dd1e 8bd5 mov edx,ebp
8086dd20 807f3100 cmp byte ptr [edi+31h],0
8086dd24 0f8419010000 je nt!SwapContext+0x163 (8086de43)
8086dd2a 8a4e2c mov cl,byte ptr [esi+2Ch]
8086dd2d 884b50 mov byte ptr [ebx+50h],cl
8086dd30 fa cli
8086dd31 896728 mov dword ptr [edi+28h],esp //旧线程的ESP保存在KernelStack中
8086dd34 8b4618 mov eax,dword ptr [esi+18h]
8086dd37 8b4e1c mov ecx,dword ptr [esi+1Ch]
8086dd3a 2d10020000 sub eax,210h
8086dd3f 894b08 mov dword ptr [ebx+8],ecx
8086dd42 894304 mov dword ptr [ebx+4],eax
8086dd45 33c9 xor ecx,ecx
8086dd47 8a4e31 mov cl,byte ptr [esi+31h]
8086dd4a 83e2f1 and edx,0FFFFFFF1h
8086dd4d 0bca or ecx,edx
8086dd4f 0b880c020000 or ecx,dword ptr [eax+20Ch]
8086dd55 3be9 cmp ebp,ecx
8086dd57 0f85de000000 jne nt!SwapContext+0x15b (8086de3b)
8086dd5d 8d4900 lea ecx,[ecx]
8086dd60 f740e400000200 test dword ptr [eax-1Ch],20000h
8086dd67 7503 jne nt!SwapContext+0x8c (8086dd6c)
8086dd69 83e810 sub eax,10h
8086dd6c 8b4b40 mov ecx,dword ptr [ebx+40h]
8086dd6f 894104 mov dword ptr [ecx+4],eax
8086dd72 8b6628 mov esp,dword ptr [esi+28h] //此时esp已是新线程的上次切换时的值。
8086dd75 8b4620 mov eax,dword ptr [esi+20h]
8086dd78 894318 mov dword ptr [ebx+18h],eax
8086dd7b fb sti
8086dd7c 8b4744 mov eax,dword ptr [edi+44h]
8086dd7f 3b4644 cmp eax,dword ptr [esi+44h]
8086dd82 c6475000 mov byte ptr [edi+50h],0
8086dd86 7440 je nt!SwapContext+0xe8 (8086ddc8)
8086dd88 8b7e44 mov edi,dword ptr [esi+44h] //注意:edi改为新线程的EPROCESS
8086dd8b 8b4b48 mov ecx,dword ptr [ebx+48h]
8086dd8e 314834 xor dword ptr [eax+34h],ecx
8086dd91 314f34 xor dword ptr [edi+34h],ecx
8086dd94 66f74720ffff test word ptr [edi+20h],0FFFFh
8086dd9a 7571 jne nt!SwapContext+0x12d (8086de0d)
8086dd9c 33c0 xor eax,eax
8086dd9e 0f00d0 lldt ax
8086dda1 8d8b40050000 lea ecx,[ebx+540h]
8086dda7 e850afffff call nt!KeReleaseQueuedSpinLockFromDpcLevel (80868cfc)
8086ddac 33c0 xor eax,eax
8086ddae 8ee8 mov gs,ax
8086ddb0 8b4718 mov eax,dword ptr [edi+18h]
8086ddb3 8b6b40 mov ebp,dword ptr [ebx+40h]
8086ddb6 8b4f30 mov ecx,dword ptr [edi+30h]
8086ddb9 89451c mov dword ptr [ebp+1Ch],eax
8086ddbc 0f22d8 mov cr3,eax
8086ddbf 66894d66 mov word ptr [ebp+66h],cx
8086ddc3 eb0e jmp nt!SwapContext+0xf3 (8086ddd3)
8086ddc5 8d4900 lea ecx,[ecx]
8086ddc8 8d8b40050000 lea ecx,[ebx+540h]
8086ddce e829afffff call nt!KeReleaseQueuedSpinLockFromDpcLevel (80868cfc)
8086ddd3 8b4318 mov eax,dword ptr [ebx+18h]
8086ddd6 8b4b3c mov ecx,dword ptr [ebx+3Ch]
8086ddd9 6689413a mov word ptr [ecx+3Ah],ax
8086dddd c1e810 shr eax,10h
8086dde0 88413c mov byte ptr [ecx+3Ch],al
8086dde3 88613f mov byte ptr [ecx+3Fh],ah
8086dde6 ff464c inc dword ptr [esi+4Ch]
8086dde9 ff831c060000 inc dword ptr [ebx+61Ch]
8086ddef 59 pop ecx//<---------本线程ESP+4
8086ddf0 890b mov dword ptr [ebx],ecx
8086ddf2 807e4900 cmp byte ptr [esi+49h],0
8086ddf6 7504 jne nt!SwapContext+0x11c (8086ddfc)
8086ddf8 9d popfd //<---------本线程ESP+4
8086ddf9 33c0 xor eax,eax
8086ddfb c3 ret
|
相关推荐
Web 前端常用框架汇总
这是一个频减法语音增强算法的matlab代码,在matlab中运行成功的
themeforest花了$20买的,是前端开发必备利器,扁平化设计,大气
AndEngineExamples AndEngine游戏引擎实例源码,以及各种插件的源码,已经配置好了,可直接下载,导入eclipse运行。 https://github.com/nicolasgramlich 可下载开源源码。
jq.ui是jq.mobi的一部分,js文件
The book is a hands-on practical guide that stresses the discussion of code and builds up a sample application that illustrates all the standard UI types covered by Trinidad. This book is written for ...
ECMAScript2021中文最新,ECMAScript2021中文文档,第1-6章,持续更新,喜欢请star。git地址https://github.com/fangniyima/ECMAScript-notes
该文章的地址在此:https://blog.csdn.net/sky_pjf/article/details/52816750 我下载了此版本,并做了修改,现在上传的是正确的版本。 控制点的选取和实现思路,都是从该文章来的。 效果还比较好,希望对大家有帮助...
pjf的IceSword的英文版
主函数:pjf000.m; 调用函数:其他m文件; 语音信号,其格式为MP4; 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,可私信博主; 3、运行操作步骤 步骤一:将所有文件放到...
Leader统帅品牌说明书
IceSword120_cn.zip<br>ustc pjf
IceSword by pjf.ustc The strongest anti-rootkit tool.
这俗话说“工欲善其事,必先利其器”,这个“器”就是IceSword(冰刃)。 IceSword,也称为冰刀或者冰刃,有些人简称IS,是USTC的PJF出品的一款系统诊断、清除利器。
使用前请详细阅读说明. <br>冰刃Icesword的作者PJF今天放出了最新版的Icesword 1.22测试版,据称主要增强了部分功能.增强了一些小功能,如ADS检测,进程/驱动签名检查,BHO删除、SSDT恢复、INLINE HOOK检测,模块...
关于作者: 360冰刃实验室安全研究员,长期从事于Linux内核驱动的开发和Android内核漏洞的挖掘和利用工作(@spinlock2014) 。 360冰刃实验室Android安全研究员,长期从事于Android内核...360冰刃实验室负责人(@PJF_)。
并使用的键盘映射的方法关闭安全软件IceSword 添加注册表使自己自启动 HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run svcshare -> C:\\WINDOWS\\System32\\Drivers\\spoclsv.exe ...
用java开发的word to jsp程序包,能把word转换成jsp文件
本demo主要用于讲述Qt进行多国语言相互切换的功能。在Qt中,所有的输入部件和文本绘制方式对Qt所支持的所有语言都提供了内置的支持。Qt内置的字体引擎可以在同一时间正确而且精细地绘制不同的文本,这些文本可以包含...
jq.plugins压缩包全文件是jq.mobi的一部分,js文件