例如原代码如下:0041D55C   .  56            push    esi
0041D55D   .  8BF1          mov     esi, ecx
0041D55F   .  E8 EAFFFFFF   call    0041D54E
0041D564   .  F64424 08 01  test    byte ptr [esp+8], 1
0041D569   .  74 07         je      short 0041D572
0041D56B   .  56            push    esi
0041D56C   .  E8 AD44FEFF   call    00401A1E
0041D571   .  59            pop     ecx
0041D572   >  8BC6          mov     eax, esi
0041D574   .  5E            pop     esi
0041D575   .  C2 0400       retn    4
我想修改0041D569   .  74 07         je      short 0041D572 处为:
0041D569   .  75 07         jne      short 0041D572
可以用writeprocessmemory来修改也可以注入之后用memcpy修改等等。但是我不想修改他的代码,象ssdt hook 可以不修改内核代码 可以用指向的方法 让它指向到自己定义的函数上面。
相关文章:http://bbs.pediy.com/showthread.php?t=40832那么ring3下可以么 让0041D55C指向我自己定义的函数(已经修改好的)__declspec(naked) __cdecl gwrh()
{
    _asm
  {
    .....
    jne  0x0041D572
    .....
  }
}
如果有错请各位大神见谅。

解决方案 »

  1.   

    我baidu找资料 发现“虚函数”  不知道该怎么用
      

  2.   

    ssdt hook是修改了dispatch表的数据结构。而你这个函数只是个内部函数,都不一定是导入函数那样可以修改IAT表。所以基本上你说的改法不切实际。直接WriteProcessMemory那几个字节是最直接有效的。
      

  3.   

    直接WriteProcessMemory 是最直接有效的。
      

  4.   

    我的初衷是不修改内存来实现 用过debugapi搞定了 但是想搞个新的 所以就想了这个
      

  5.   

    WriteProcessMemory 是最直接有效的,楼主试试