汇聚知识碎片,解决技术难题,专注提供易语言源码资源,视频教程,等在线学习交流论坛
 
发新帖
楼主: 666
查看: 658|回复: 0

Nt_Atoms_* - Routine

[复制链接]
666VIP1 发表于 2021-4-19 21:45:43 | 显示全部楼层
本帖最后由 666 于 2021-5-10 13:25 编辑
  1. .版本 2
  2. .支持库 spec

  3. .局部变量 Unicode
  4. .局部变量 Unicodelen
  5. .局部变量 pUnicodelen
  6. .局部变量 atom
  7. .局部变量 AtomTableInformation
  8. .局部变量 i

  9. Unicode = Nt_Heap_RtlAllocateHeap (g_heap, 位或 (#HEAP_ZERO_MEMORY, #HEAP_GENERATE_EXCEPTIONS), 6)
  10. Unicodelen = 6
  11. Nt_RtlMoveMemory (Unicode, Asm_GetBinH ({ 6, 6, 6, 6, 6, 6 }), 6)


  12. Nt_Atoms_ZwAddAtom (Unicode, Unicodelen, Asm_GetH (atom))  ' 传入Unicode地址 加入系统原子中

  13. Nt_Heap_RtlFreeHeap (g_heap, 0, Unicode)  ' 释放掉内存
  14. ' -----------------------------------------------------------------------------------
  15. Unicode = Nt_Heap_RtlAllocateHeap (g_heap, 位或 (#HEAP_ZERO_MEMORY, #HEAP_GENERATE_EXCEPTIONS), 4)  ' 申请4字节查询全局原子数量
  16. Nt_Atoms_ZwQueryInformationAtom (0, 1, Unicode, 4, Asm_GetH (4))  ' 传入相应的值进行查询
  17. AtomTableInformation = Asm_readDword (Unicode)  ' 读取数量

  18. .如果真 (AtomTableInformation = 0)  ' 可能没权限
  19.     Nt_Atoms_ZwDeleteAtom (atom)
  20.     返回 ()
  21. .如果真结束

  22. Unicodelen = AtomTableInformation × 2 + 4
  23. Unicode = Nt_Heap_RtlReAllocateHeap (g_heap, 位或 (#HEAP_ZERO_MEMORY, #HEAP_GENERATE_EXCEPTIONS), Unicode, Unicodelen)  ' 申请相应长度内存

  24. Nt_Atoms_ZwQueryInformationAtom (0, 1, Unicode, Unicodelen, Asm_GetH (pUnicodelen))  ' 查询全局原子对象

  25. i = 0
  26. .计次循环首 (AtomTableInformation, )  ' 循环读取全局对象句柄
  27.     Asm_readWord_Dword (Unicode, Asm_add (4, i))  ' 对象句柄

  28.     i = i + 2
  29. .计次循环尾 ()
  30. Nt_Heap_RtlFreeHeap (g_heap, 0, Unicode)  ' 释放掉内存

  31. Unicode = Nt_Heap_RtlAllocateHeap (g_heap, 位或 (#HEAP_ZERO_MEMORY, #HEAP_GENERATE_EXCEPTIONS), 510)  ' 申请相应长度内存
  32. Nt_Atoms_ZwQueryInformationAtom (atom, 0, Unicode, Unicodelen, Asm_GetH (pUnicodelen))  ' 查询当前申请原子内容

  33. 调试输出 (指针到字节集 (Unicode, pUnicodelen))  ' 指针到字节集 只是为了能够调试输出 没任何用处
  34. Nt_Atoms_ZwFindAtom (Unicode, pUnicodelen, atom)  ' 通过内容查找对象句柄

  35. 输出调试文本 (atom)

  36. Nt_Heap_RtlFreeHeap (g_heap, 0, Unicode)  ' 释放掉内存
  37. Nt_Atoms_ZwDeleteAtom (atom)  ' 删除申请的原子
复制代码

快速回复 返回顶部 返回列表