fasm Ke386SetIoAccessMap
来源:互联网 发布:sql多表联合查询 编辑:程序博客网 时间:2024/05/16 20:29
nt!Ke386SetIoAccessMap:804f8160 8bff mov edi,edi804f8162 55 push ebp804f8163 8bec mov ebp,esp804f8165 57 push edi804f8166 8b7d08 mov edi,dword ptr [ebp+8] ;MapNumber804f8169 83ff01 cmp edi,1804f816c 7759 ja nt!Ke386SetIoAccessMap+0x67 (804f81c7)804f816e 85ff test edi,edi804f8170 7455 je nt!Ke386SetIoAccessMap+0x67 (804f81c7)804f8172 53 push ebx804f8173 56 push esi804f8174 ff158c864d80 call dword ptr [nt!_imp__KeRaiseIrqlToSynchLevel (804d868c)]804f817a 8ad8 mov bl,al804f817c 3ea120f0dfff mov eax,dword ptr ds:[0FFDFF020h]804f8182 8bd0 mov edx,eax804f8184 b800f0dfff mov eax,0FFDFF000h804f8189 69ff24200000 imul edi,edi,2024h ;sizeof.KiIoAccessMap804f818f 8b4040 mov eax,dword ptr [eax+40h] ;TSS804f8192 8b750c mov esi,dword ptr [ebp+0Ch]804f8195 8dbc0764e0ffff lea edi,[edi+eax-1F9Ch]804f819c b900080000 mov ecx,800h804f81a1 f3a5 rep movs dword ptr es:[edi],dword ptr [esi]804f81a3 8b4204 mov eax,dword ptr [edx+4]804f81a6 8b4844 mov ecx,dword ptr [eax+44h]804f81a9 b800f0dfff mov eax,0FFDFF000h804f81ae 668b4930 mov cx,word ptr [ecx+30h]804f81b2 8b4040 mov eax,dword ptr [eax+40h]804f81b5 66894866 mov word ptr [eax+66h],cx804f81b9 8acb mov cl,bl804f81bb ff151c874d80 call dword ptr [nt!_imp_KfLowerIrql (804d871c)]804f81c1 5e pop esi804f81c2 b001 mov al,1804f81c4 5b pop ebx804f81c5 eb02 jmp nt!Ke386SetIoAccessMap+0x69 (804f81c9)804f81c7 32c0 xor al,al804f81c9 5f pop edi804f81ca 5d pop ebp804f81cb c20800 ret 8
fasm:
proc Ke386SetIoAccessMap uses esi edi, MapNumber, IopmBuffer xor eax,eax mov edi,[MapNumber] cmp edi,IOPM_COUNT ja .exit ;FALSE test edi,edi jz .exit ;FALSE call [KeRaiseIrqlToSynchLevel] push eax ;-------------------------------------------- mov eax,[kpcr.TSS] ;KPCR->TSS mov edx,eax lea edi,[eax+KTSS.IoMaps.IoMap] ;KPCR->TSS->KiIoAccessMap[0]->IoMap mov esi,[IopmBuffer] mov ecx,IOPM_SIZE/4 ;=8192/4 IOPM_SIZE rep movsd mov eax,[kpcr.Prcb] ;KPCR->Prcb mov eax,[eax+KPRCB.CurrentThread] ;KPCR->Prcb->CurrentThread mov eax,[eax+KTHREAD.ApcState.Process] ;KPCR->Prcb->CurrentThread->ApcState.Process mov ax ,[eax+KPROCESS.IopmOffset] mov [edx+KTSS.IoMapBase],ax ;KPCR->TSS->IoMapBase = IopmOffset ;-------------------------------------------- pop ecx call [KfLowerIrql] ;cl mov al,1 ;TRUE.exit: retendp
在winxp 和win2003上测试 效果:
- fasm Ke386SetIoAccessMap
- FASM
- fasm giveio
- FASM v 1.67.25
- FASM练习代码
- Fasm Native for Examples
- seh to fasm 研究
- Fasm-TCC BareBones
- fasm 控制台多线程示例
- 汇编开发工具 fasm
- FASM汇编编译器
- Fasm操作数据库sqlite
- fasm DirectDraw test
- fasm driver 驱动编程
- FASM源代码分析01
- FASM源代码分析02
- Fasm---Win32汇编学习1
- Fasm---Win32汇编学习2
- 字符串读写函数gets() 、puts()、fgets()和fputs()
- android获取手机和sd卡上音乐列表
- 八大排序算法
- MP4文件格式的解析,以及MP4文件的分割算法
- 按照 working set 来管理eclipse项目
- fasm Ke386SetIoAccessMap
- storm入门教程 第一章 前言
- VC命令行编译中出现Invalid switch错误的解决办法
- 【D的小L 366 排列】
- 智能标题
- HTTP Live Streaming直播(iOS直播)技术分析与实现
- stm32位带操作的理解
- C++编译器无法捕捉到的8种错误
- 手动修改工程名......完美实现(VS2005 MFC)