魔兽(120E 124B 124E)作弊内存地址全公开
魔兽(1.20E 1.24B 1.24E)作弊内存地址全公开
代码中的patch是一个宏
1. #define patch(i,w) memcpy((LPVOID)(GameAddr+i),w,sizeof(w)-1)
复制代码
很奇怪是吧,你怎么把patch展开为memcpy呢,
其实,我把这些作弊代码放在SPI的Dll里面也就是大家看到的%APPDATA%\\HackDll.dll,这个Dll被war3.exe加载,进入了war3.exe的地址空间,而我们修改魔兽作弊主要就是修改game.dll中的内存,也是在war3.exe的地址空间,同一个进程内的修改内存,当然只要 MOV 指令就能实现了呗,高级语言的memcpy编译成汇编以后就是 MOV 指令了...不过要记得先用 VirtualProtect 函数改变一下目标地址的保护属性,PAGE_EXECUTE_READWRITE
如果你的作弊代码是放在自己的EXE中,要修改war3.exe中的内存就是读写不同进程的地址空间了,
很多,不过一般使用的是 WriteProcessMemory这个函数,所以你可以这样定义你自己的patch
1. #define patch(i,w) WriteProcessMemory(hOpenWC3,(LPVOID)(GameAddr+i),w,sizeof(w)-1,0) 复制代码
GameAddr是什么东西,他是war3.exe中 Game.dll 的加载地址,也称基址,至于怎么获取进程的模块基址,只要百度一下就能找到...
1. //////////////1.20E
2. ///////////////////////////////////////////////////大地图去除迷雾
3. patch(0x406B53,"\x90\x8B\x09");
4. ///////////////////////////////////////////////////大地图显示单位
5. patch(0x2A0930,"\xD2");
6. ///////////////////////////////////////////////////大地图显示隐形
7. patch(0x17D4C2,"\x90\x90");
8. patch(0x17D4CC,"\xEB\x00\xEB\x00\x75\x30");
9. ///////////////////////////////////////////////////////分辨幻影
10. patch(0x1ACFFC,"\x40\xC3");
11. ///////////////////////////////////////////////////////显示神符
12. patch(0x2A07C5,"\x49\x4B\x33\xDB\x33\xC9");
13. ///////////////////////////////////////////////////小地图去除迷雾
14. patch(0x147C53,"\xEC");
15. //////////////////////////////////////////////////////显示单位
16. patch(0x1491A8, "\x00");
17. /////////////////////////////////////////////////////显示隐形 18. patch(0x1494E0,"\x33\xC0\x0F\x85");
19. ////////////////////////////////////////////////////敌方信号 20. patch(0x321CC4,"\x39\xC0\x0F\x85");
21. patch(0x321CD7,"\x39\xC0\x75");
22. //////////////////////////////////////////////////他人提示 23. patch(0x124DDD,"\x39\xC0\x0F\x85");
24. /////////////////////////////////////////////////显示敌方头像 25. patch(0x137BA5,"\xE7\x7D");
26. patch(0x137BAC,"\x85\xA3\x02\x00\x00\xEB\xCE\x90\x90\x90\x90"); 27. //////////////////////////////////////////////////盟友头像 28. patch(0x137BA5,"\xE7\x7D");
29. patch(0x137BB1,"\xEB\xCE\x90\x90\x90\x90");
30. //////////////////////////////////////////////数字显攻速 31. patch(0x802E67,"\x32");
32. patch(0x13BA61,"\x90\xD9\x45\x08\x83\xEC\x08\xDD\x1C\x24\x68"); 33. DWORD tmp=0x802E64+GameAddr;
34. //在这里请注意,为什么要使用一个tmp变量呢,
35. //Dll中的基址重定位是系统帮你改写的,这里我们也要考虑到 基址重定位 的问题 36. memcpy(LPVOID(GameAddr+0x13BA6C),&tmp,4);
37. patch(0x13BA70,"\x8D\x55\xA0\x6A\x7F\x52\xE8\x27\x7E\x25\x00\x83\xC4\x14\x6A\x7F\x8D\x45\xA0\x50");
38. /////////////////////////////////////////////数字显移速 39. patch(0x802E67,"\x32");
40. patch(0x13C3F2,"\x90\xD9\x45\x08\x83\xEC\x08\xDD\x1C\x24\x68"); 41. DWORD tmp=0x802E64+GameAddr;
42. memcpy(LPVOID(GameAddr+0x13C3FD),&tmp,4);
43. patch(0x13C401,"\x8D\x55\x98\x6A\x7F\x52\xE8\x96\x74\x25\x00\x83\xC4\x14\x6A\x7F\x8D\x45\x98\x50");
44. //////////////////////////////////////////////资源面板 45. patch(0x13EF03,"\xEB");
46. /////////////////////////////////////////////允许交易 47. patch(0x127B3D,"\x40\xB8\x64");
48. //////////////////////////////////////////////显示技能 49. patch(0x12DC1A,"\x33\xC0");
50. patch(0x12DC5A,"\x33\xC0");
51. patch(0x1BFABE,"\xEB");
52. patch(0x442CC0,"\x90\x40\x30\xC0\x90\x90"); 53. patch(0x443375,"\x30\xC0");
54. patch(0x45A641,"\x90\x90\x33\xC0\x90\x90"); 55. patch(0x45E79E,"\x90\x90");
56. patch(0x45E7A0,"\x33\xC0\x90\x90");
57. patch(0x466527,"\x90\x90");
58. patch(0x46B258,"\x90\x33\xC0\x90\x90\x90"); 59. patch(0x4A11A0,"\x33\xC0");
60. patch(0x54C0BF,"\x90\x33\xC0\x90\x90\x90"); 61. patch(0x5573FE,"\x90\x90\x90\x90\x90\x90"); 62. patch(0x55E15C,"\x90\x90");
63. ///////////////////////////////////////////////资源条 64. patch(0x150981,"\xEB\x02");
65. patch(0x1509FE,"\xEB\x02");
66. patch(0x151597,"\xEB\x02");
67. patch(0x151647,"\xEB\x02");
68. patch(0x151748,"\xEB\x02");
69. patch(0x1BED19,"\xEB\x02");
70. patch(0x314A9E,"\xEB\x02");
71. patch(0x21EAD4,"\xEB");
72. patch(0x21EAE8,"\x03");
73. /////////////////////////////////////////////////野外显血 74. patch(0x166E5E,"\x90\x90\x90\x90\x90\x90\x90\x90"); 75. patch(0x16FE0A,"\x33\xC0\x90\x90");
76. ////////////////////////////////////////////////视野外点选 77. patch(0x1BD5A7,"\x90\x90");
78. patch(0x1BD5BB,"\xEB");
79. /////////////////////////////////////////////////无限取消
80. patch(0x23D60F,"\xEB");
81. patch(0x21EAD4,"\x03");
82. patch(0x21EAE8,"\x03");
83. //////////////////////////////////////////////////过-MH(蓝宝石) 84. patch(0x2C5A7E,"\x90\x90");
85. /////////////////////////////////////////反-AH
86. patch(0x2C240C,"\x3C\x4C\x74\x04\xB0\xFF\xEB\x04\xB0\xB0\x90\x90"); 87. patch(0x2D34ED,"\xE9\xB3\x00\x00\x00\x90");
88. //////////////////////////////////////////////////////////// 复制代码
1. //1.24B
2. /////////////////////////////////////////////////////////////////////大地图去除迷雾 3. patch(0x74D103,"\xC6\x04\x3E\x01\x90\x46");
4. ///////////////////////////////////////////////////////大地图显示单位 5. patch(0x3A201D, "\xEB");
6. ////////////////////////////////////////////////////////大地图显示隐形 7. patch(0x3622D1,"\x3B");
8. patch(0x3622D4,"\x85");
9. patch(0x39A45B,"\x90\x90\x90\x90\x90\x90");
10. patch(0x39A46E,"\x90\x90\x90\x90\x90\x90\x90\x90\x33\xC0\x40"); 11. /////////////////////////////////////////////////////分辨幻影 12. patch(0x28351C,"\x40\xC3");
13. /////////////////////////////////////////////////////显示神符 14. patch(0x4076CA,"\x90\x90");
15. patch(0x3A1F5B,"\xEB");
16. ///////////////////////////////////////////////////////小地图去除迷雾 17. patch(0x356FA5,"\x90\x90");
18. /////////////////////////////////////////////////////小地图显示单位 19. patch(0x361EAB,"\x90\x90\x39\x5E\x10\x90\x90\xB8\x00\x00\x00\x00\xEB\x07"); 20. ///////////////////////////////////////////////////////小地图显示隐形 21. patch(0x361EBC,"\x00");
22. //////////////////////////////////////////////////////敌方信号
23. patch(0x43F956,"\x3B");
24. patch(0x43F959,"\x85");
25. patch(0x43F969,"\x3B");
26. patch(0x43F96C,"\x85");
27. ////////////////////////////////////////////////////////他人提示 28. patch(0x334529,"\x39\xC0\x0F\x85");
29. ///////////////////////////////////////////////////////敌人头像 30. patch(0x371640,"\xE8\x3B\x28\x03\x00\x85\xC0\x0F\x85\x8F\x02\x00\x00\xEB\xC9\x90\x90\x90\x90"); 31. /////////////////////////////////////////////////////盟友头像
32. patch(0x371640,"\xE8\x3B\x28\x03\x00\x85\xC0\x0F\x84\x8F\x02\x00\x00\xEB\xC9\x90\x90\x90\x90"); 33. ////////////////////////////////////////////////////////////数显攻速 34. patch(0x87E9A3,"\x25\x30\x2E\x32\x66\x7C\x52\x00");
35. patch(0x87E9B0,"\x8D\x4C\x24\x18\xD9\x44\x24\x60\x83\xEC\x08\xDD\x1C\x24\x68"); 36. DWORD tmp=0x87E9A3+GameAddr;
37. memcpy(LPVOID(GameAddr+0x87E9BF),&tmp,4);
38. patch(0x87E9C3,"\x57\x51\xE8\xBC\xD2\xE6\xFF\x83\xC4\x14\x58\x57\x8D\x4C\x24\x18\xFF\xE0"); 39. patch(0x339D34,"\xE8\x77\x4C\x54\x00");
40. //////////////////////////////////////////////////////////数显移速 41. patch(0x87E9A3,"\x25\x30\x2E\x32\x66\x7C\x52\x00");
42. patch(0x87E9B0,"\x8D\x4C\x24\x18\xD9\x44\x24\x60\x83\xEC\x08\xDD\x1C\x24\x68"); 43. DWORD tmp=0x87E9A3+GameAddr;
44. memcpy(LPVOID(GameAddr+0x87E9BF),&tmp,4);
45. patch(0x87E9C3,"\x57\x51\xE8\xBC\xD2\xE6\xFF\x83\xC4\x14\x58\x57\x8D\x4C\x24\x18\xFF\xE0"); 46. patch(0x339B94,"\xE8\x17\x4E\x54\x00");
47. //////////////////////////////////////////////////////资源面板 48. patch(0x3604CA,"\x90\x90");
49. ///////////////////////////////////////////////////////允许交易 50. patch(0x34E822,"\xB8\xE0\x03\x00");
51. patch(0x34E827,"\x90");
52. patch(0x34E82A,"\xB8\x64\x90\x90");
53. patch(0x34E82F,"\x90");
54. //////////////////////////////////////////////////////查看技能
55. patch(0x28EC8E,"\xEB");
56. patch(0x20318C,"\x90\x90\x90\x90\x90\x90");
57. patch(0x34FD28,"\x90\x90");
58. patch(0x34FD66,"\x90\x90\x90\x90");
59. ////////////////////////////////////////////////////////资源条 60. ////////////////////////////////////////////////////////野外显血 61. ////////////////////////////////////////////////////////视野外点击 62. patch(0x285C4C,"\x90\x90");
63. patch(0x285C62,"\xEB");
64. /////////////////////////////////////////////////////////////无限取消 65. patch(0x57B9FC,"\xEB");
66. patch(0x5B2CC7,"\x03");
67. patch(0x5B2CDB,"\x03");
68. ////////////////////////////////////////////////////////过-MH 69. patch(0x3C8407,"\xEB\x11");
70. patch(0x3C8427,"\xEB\x11");
71. //////////////////////////////////////////////////////////反-AH 72. patch(0x3C6E1C,"\xB8\xFF\x00\x00\x00\xEB");
73. patch(0x3CC2F2,"\xEB");
74. /////////////////////////////////////////////////////////////////// 复制代码
1. // 1.24E
2. ////////////////////////////////////////////////////////////////////////大地图去除迷雾
3. patch(0x74D1B9,"\xB2\x00\x90\x90\x90\x90");
4. ////////////////////////////大地图显示单位
5. patch(0x39EBBC,"\x75");
6. patch(0x3A2030,"\x90\x90");
7. patch(0x3A20DB,"\x90\x90");
8. ///////////////////////////////显示隐形单位
9. patch(0x362391,"\x3B");
10. patch(0x362394,"\x85");
11. patch(0x39A51B,"\x90\x90\x90\x90\x90\x90");
12. patch(0x39A52E,"\x90\x90\x90\x90\x90\x90\x90\x90\x33\xC0\x40"); 13. ///////////////////////////////////////////////////分辨幻影 14. patch(0x28357C,"\x40\xC3");
15. /////////////////////////////////////////////////////显示物品 16. patch(0x3A201B,"\xEB");
17. patch(0x40A864,"\x90\x90");
18. ////////////////////////////////////////////小地图 去除迷雾 19. patch(0x357065,"\x90\x90");
20. ////////////////////////////////////////////小地图显示单位 21. patch(0x361F7C,"\x00");
22. /////////////////////////////////////////////小地图显示隐形 23. /////////////////////////////////////////////敌方信号 24. patch(0x43F9A6,"\x3B");
25. patch(0x43F9A9,"\x85");
26. patch(0x43F9B9,"\x3B");
27. patch(0x43F9BC,"\x85");
28. /////////////////////////////////////////////他人提示 29. patch(0x3345E9,"\x39\xC0\x0F\x85");
30. ////////////////////////////////////////////////敌方头像 31. patch(0x371700,"\xE8\x3B\x28\x03\x00\x85\xC0\x0F\x85\x8F\x02\x00\x00\xEB\xC9\x90\x90\x90\x90");
32. /////////////////////////////////////盟友头像
33. patch(0x371700,"\xE8\x3B\x28\x03\x00\x85\xC0\x0F\x84\x8F\x02\x00\x00\xEB\xC9\x90\x90\x90\x90");
34. ////////////////////////////////////////////////////////////数显攻速 35. patch(0x87EA63,"\x25\x30\x2E\x32\x66\x7C\x52\x00");
36. patch(0x87EA70,"\x8D\x4C\x24\x18\xD9\x44\x24\x60\x83\xEC\x08\xDD\x1C\x24\x68"); 37. DWORD tmp=0x87EA63+GameAddr;
38. memcpy(LPVOID(GameAddr+0x87EA7F),&tmp,4);
39. patch(0x87EA83,"\x57\x51\xE8\xBC\xD2\xE6\xFF\x83\xC4\x14\x58\x57\x8D\x4C\x24\x18\xFF\xE0");
40. patch(0x339DF4,"\xE8\x77\x4C\x54\x00");
41. //////////////////////////////////////////////////////////数显移速 42. patch(0x87EA63,"\x25\x30\x2E\x32\x66\x7C\x52\x00");
43. patch(0x87EA70,"\x8D\x4C\x24\x18\xD9\x44\x24\x60\x83\xEC\x08\xDD\x1C\x24\x68");
44. DWORD tmp=0x87EA63+GameAddr;
45. memcpy(LPVOID(GameAddr+0x87EA7F),&tmp,4);
46. patch(0x87EA83,"\x57\x51\xE8\xBC\xD2\xE6\xFF\x83\xC4\x14\x58\x57\x8D\x4C\x24\x18\xFF\xE0");
47. patch(0x339C54,"\xE8\x17\x4E\x54\x00");
48. //////////////////////////////////////////////////////资源面板 49. patch(0x36058A,"\x90");
50. patch(0x36058B,"\x90");
51. /////////////////////////////////////////// 允许交易 52. patch(0x34E8E2,"\xB8\xC8\x00\x00");
53. patch(0x34E8E7,"\x90");
54. patch(0x34E8EA,"\xB8\x64\x00\x00");
55. patch(0x34E8EF,"\x90");
56. ////////////////////////////////////////////////显示技能 57. patch(0x2031EC,"\x90\x90\x90\x90\x90\x90"); 58. patch(0x34FDE8,"\x90\x90");
59. /////////////////////////////////////////////////技能CD 60. patch(0x28ECFE,"\xEB");
61. patch(0x34FE26,"\x90\x90\x90\x90");
62. //////////////////////////////////////////////资源条 63. //////////////////////////////////////////////野外显血 64. ///////////////////////////////////////////////视野外点击 65. patch(0x285CBC,"\x90\x90");
66. patch(0x285CD2,"\xEB");
67. //////////////////////////////////////////////////无限取消 68. patch(0x57BA7C,"\xEB");
69. patch(0x5B2D77,"\x03");
70. patch(0x5B2D8B,"\x03");
71. /////////////////////////////////////////////////////过-MH 72. patch(0x3C84C7,"\xEB\x11");
73. patch(0x3C84E7,"\xEB\x11");
74. ////////////////////////////////////////////////////反-AH 75. patch(0x3C6EDC,"\xB8\xFF\x00\x00\x00\xEB");
76. patch(0x3CC3B2,"\xEB");
77. ///////////////////////////////////////////////////////////
复制代码