搜索
查看: 21851|回复: 83

[其他] Jo's (v1 v2)完美修复代码

  [复制链接]
发表于 2012-7-19 14:45:44 | 显示全部楼层 |阅读模式 来自 广东深圳
  1. /*
  2. 035A5394 <>|> /8B50 48            /mov     edx, dword ptr [eax+48]         ;  loc_1D35394
  3. 035A5397   |. |8B48 40            |mov     ecx, dword ptr [eax+40]
  4. 035A539A   |. |03FA               |add     edi, edx
  5. 035A539C   |. |83F9 02            |cmp     ecx, 2
  6. 035A539F   |. |75 0B              |jnz     short <loc_1D353AC>
  7. 035A53A1   |. |8378 44 01         |cmp     dword ptr [eax+44], 1
  8. 035A53A5   |. |75 05              |jnz     short <loc_1D353AC>
  9. 035A53A7   |. |0156 18            |add     dword ptr [esi+18], edx
  10. 035A53AA   |. |EB 03              |jmp     short <loc_1D353AF>
  11. 035A53AC <>|> |01148E             |add     dword ptr [esi+ecx*4], edx      ;  loc_1D353AC
  12. 035A53AF <>|> |8B80 80000000      |mov     eax, dword ptr [eax+80]         ;  loc_1D353AF
  13. 035A53B5   |. |3BC3               |cmp     eax, ebx
  14. 035A53B7   |.^\75 DB              \jnz     short <loc_1D35394>
  15. */
  16. __declspec(naked)void Safe_SizeofResourceList()
  17. {
  18.         __asm{
  19.                 CMP ECX,7
  20.                 JA _IsOverflow
  21.                 ADD DWORD PTR [ESI+ECX*4],EDX
  22. _IsOverflow:
  23.                 MOV EAX,[EAX+0x80]
  24.                 RET
  25.         }
  26. }

  27. //
  28. bool PatchSizeofResourceList(void *BaseAddr, DWORD BaseSize)
  29. {
  30.         DWORD OldProtect;
  31.         const char *SizeofResourceList = "\xEB\x03\x01\x14\x8E\x8B\x80\x80\x00\x00\x00\x3B\xC3\x75\xDB";
  32.         BYTE *Offset;
  33.         Offset = (BYTE*)FindMemory((char*)BaseAddr, (char*)BaseAddr+BaseSize-1, SizeofResourceList, 15);
  34.         if(Offset)
  35.         {
  36.                 Offset++;
  37.                 Offset++;
  38.                 VirtualProtect((void*)(Offset),9,PAGE_EXECUTE_READWRITE,&OldProtect);
  39.                 *Offset = 0xBA; //MOV EDX,XXX
  40.                 *(DWORD*)(Offset+1) = (DWORD)&Safe_SizeofResourceList;
  41.                 *(Offset+5) = 0xFF; //CALL EDX
  42.                 *(Offset+6) = 0xD2;
  43.                 *(Offset+7) = 0x90; //NOP
  44.                 *(Offset+8) = 0x90; //NOP
  45.                 return true;
  46.         }
  47.         return false;
  48. }




复制代码
  1.         if(GetModuleInfo("swds.dll", &MI))
  2.         {
  3.                 bSuccess = PatchSizeofResourceList(MI.BaseAddr, MI.Size);
  4.                 if( bSuccess )
  5.                         SERVER_PRINT("[HLDSPatch] Patch "COM_SizeofResourceList" successful!\n");
  6.                 else
  7.                         SERVER_PRINT("[HLDSPatch] Patch "COM_SizeofResourceList" failed.\n");
  8.         }
复制代码


请粘贴到AutoBuyFix的源码中使用
发表于 2012-7-19 16:24:03 | 显示全部楼层 来自 天津
哈哈哈哈哈哈哈哈
回复

使用道具 举报

发表于 2012-7-19 16:32:13 | 显示全部楼层 来自 广东深圳
好,可以下不了
回复

使用道具 举报

发表于 2012-7-19 17:39:16 | 显示全部楼层 来自 河南洛阳
支持下lz了!!
回复

使用道具 举报

发表于 2012-7-19 17:41:02 | 显示全部楼层 来自 广东深圳
这个是啥东西?看看。个是啥个是啥个是啥
回复

使用道具 举报

发表于 2012-7-19 21:34:01 | 显示全部楼层 来自 云南曲靖
谢谢啊。。。
回复

使用道具 举报

发表于 2012-7-19 22:51:36 | 显示全部楼层 来自 上海
看看。。。。。。。。。。
回复

使用道具 举报

发表于 2012-7-19 23:06:22 | 显示全部楼层 来自 广东佛山
:o又出好东西了看看是什么
回复

使用道具 举报

发表于 2012-7-20 08:25:54 | 显示全部楼层 来自 广西南宁

哈哈哈哈哈哈哈哈
回复

使用道具 举报

发表于 2012-7-20 08:57:49 | 显示全部楼层 来自 上海浦东新区
是啥东西?看看。个是啥个是啥个是啥
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

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