突然想到个好点子.
众所周知,在内核中进行ssdt hook得获取ssdt函数的函数索引id,一般情况下,我们都是"勤劳"
地定义各个操作系统版本的函数索引id,
聪明点的程序员,就会用更加聪明一点的手法,比如在内存中加载一份ntdll.dll,然后获取导出表,
然后得到函数体,再硬编码来获取各操作系统 索引id 的数字的编码,然后获取得到函数索引id,(此不是我想说的,
此方案依然落后.)
我们先看下面的2个ntdll中的函数,
67936678 NtSetInformation B8 4D010000 mov eax,14D
6793667D BA 0003FE7F mov edx,7FFE0300
67936682 FF12 call dword ptr ds:[edx]
67936684 C2 1000 retn 10
67936687 90 nop
67936688 NtSetInformation B8 4E010000 mov eax,14E
6793668D BA 0003FE7F mov edx,7FFE0300
67936692 FF12 call dword ptr ds:[edx]
67936694 C2 1000 retn 10
67936697 90 nop
我的方案更加进步~,运用函数指令反汇编引擎,确定这些函数体大概有多少条指令,哪些指令是不同的,
然后根据不同,运用
人工智能类似的方法来确定函数索引id(最主要的就是评价你的引擎有多少点
人工智能~).
ps,别喷啊,应该有很多人都早就想到了,咱突然想到,赶紧保存下来,论坛为什么就没看到这种引擎方法呢~
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!