你们要想试试 可以装个V6最新版的 firewall OD随便加载一个程序 定位到 ZwClose 就明白了
一个大名鼎鼎的系统防护公司 竟然连一个r3下HOOK方式都另人感到恶心
虽然是免费的 我也一直都在用 也一直怀疑它的规则存储有问题 直到今天规则清空消失了我才装个新版 b==,因为总是有磁盘访问我想是拦截了什么 用OD加载后才发现这种COMODO HOOK:
使用读内存JMP 这里不说什么了 偷点懒没什么。。。
7C92CFEE ntdll.ZwClose - FF25 1E00AE71 jmp dword ptr ds:[71AE001E]
7C92CFF4 0003 add byte ptr ds:[ebx],al
7C92CFF6 FE ??? ; 未知命令
7C92CFF7 7F FF jg short ntdll.7C92CFF8
7C92CFF9 12C2 adc al,dl
jmp dword ptr ds:[71AE001E]:
JMP后要保存返回地址是吧? 也没什么啊 随便使用个局部变量也就OK了
可奇葩的是 它竟然是使用0x118(280)个数组来保存当前线程的返回地址 可真是连小学生都不如了!
超过280个他就不保存了 。。。原来用户速度可以这样甩着玩的COMODO 要死哦 280个线程要来个网络阻塞 那返回后有没有BUG都不知道。。
这还不行,这个地方占用了4096个字节页面地址的内存 返回的地方也是个4096个字节页面地址的内存。相当于一个APIHOOK占用
2次分配的4096的页面内存。。 浪费用户内存多可惜啊。。。难道不会用 HeapCreate 申请一个内存堆吗??
71AF000A 57 push edi
71AF000B 52 push edx
71AF000C 51 push ecx
71AF000D 50 push eax
71AF000E BF 3B00AF71 mov edi,71AF003B
71AF0013 8B5424 10 mov edx,dword ptr ss:[esp+10]
71AF0017 B9 18010000 mov ecx,118
71AF001C 33C0 xor eax,eax
71AF001E F0:0FB157 01 lock cmpxchg dword ptr ds:[edi+1],edx ; 锁定前缀
71AF0023 74 09 je short 71AF002E
71AF0025 83C7 0E add edi,0E
71AF0028 33C0 xor eax,eax
71AF002A ^ E2 F2 loopd short 71AF001E
71AF002C EB 04 jmp short 71AF0032
71AF002E 897C24 10 mov dword ptr ss:[esp+10],edi
71AF0032 58 pop eax
71AF0033 59 pop ecx
71AF0034 5A pop edx
71AF0035 5F pop edi
71AF0036 - E9 E559529E jmp guard32.10015A20
71AF003B 68 00000000 push 0
71AF0040 F0:8325 3C00AF7>lock and dword ptr ds:[71AF003C],0 ; 锁定前缀
71AF0048 C3 retn
71AF0049 68 00000000 push 0
71AF004E F0:8325 4A00AF7>lock and dword ptr ds:[71AF004A],0 ; 锁定前缀
71AF0056 C3 retn
71AF0057 68 00000000 push 0
71AF005C F0:8325 5800AF7>lock and dword ptr ds:[71AF0058],0 ; 锁定前缀
71AF0064 C3 retn
71AF0065 68 00000000 push 0
71AF006A F0:8325 6600AF7>lock and dword ptr ds:[71AF0066],0 ; 锁定前缀
71AF0072 C3 retn
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课