| 474 | } |
| 475 | |
| 476 | void CProcessInlineHookTable::CheckInlineHook(uint8_t* code, size_t codeSize, uint64_t address, ULONG_PTR moduleBase, SIZE_T moduleSize) { |
| 477 | // �����ʱ��ϳ�������£��ῨUI |
| 478 | size_t count; |
| 479 | cs_insn* insn; |
| 480 | if (_x64) { |
| 481 | count = cs_disasm(_x64handle, code, codeSize, address, 0, &insn); |
| 482 | if (count > 0) { |
| 483 | for (size_t j = 0; j < count; j++) { |
| 484 | CheckX64HookType1(insn, j, count, moduleBase, moduleSize, address, codeSize); |
| 485 | CheckX64HookType2(insn, j, count); |
| 486 | CheckX64HookType4(insn, j, count, moduleBase, moduleSize, address, codeSize); |
| 487 | } |
| 488 | cs_free(insn, count); |
| 489 | } |
| 490 | } |
| 491 | else { |
| 492 | count = cs_disasm(_x86handle, code, codeSize, address, 0, &insn); |
| 493 | if (count > 0) { |
| 494 | for (size_t j = 0; j < count; j++) { |
| 495 | CheckX86HookType1(insn, j, count, moduleBase, moduleSize); |
| 496 | CheckX86HookType2(insn, j, count); |
| 497 | CheckX86HookType3(insn, j, count); |
| 498 | CheckX86HookType6(insn, j, count); |
| 499 | } |
| 500 | cs_free(insn, count); |
| 501 | } |
| 502 | } |
| 503 | } |
| 504 | |
| 505 | void CProcessInlineHookTable::Refresh() { |
| 506 | m_VMTracker->EnumRegions(); |
nothing calls this directly
no outgoing calls
no test coverage detected