吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 14055|回复: 12
收起左侧

[其他转载] VS真三全图源码!!~

  [复制链接]
q639656 发表于 2011-4-13 01:04
本帖最后由 q639656 于 2011-4-13 13:45 编辑

上次发了真三全图的辅助 这次发源码


原理简要说明:
VS检测作弊肯定不会放在主线程,既然是另开线程,那就好办的多,用procexp等工具查看一下VS的线程信息(用HideToolz隐藏,不然会被关闭),通过观察找到入手点,找到线程启动地址以后,分析就好办的多了...
Sleep掉VS反作弊模块的线程,在线程中间函数(VS 3.12 地址:0x0045f640  VS3.0 地址:0x0045f782)处HOOK,判断传入地址,如果为检测反作弊的函数地址则 while(1) Sleep(10000);,作用一看就明白了,线程不能retn ,不然VS会退出...
至于哪些函数是检测作弊的,这个也容易找到,搜索字符串“作弊”,搜索ReadProcessMemory,还有因为通过线程中间函数启动的只有12个线程,先HOOK一下,得到这12个函数入口地址,缩小范围在这12个函数里面找...
还有说明一下:有一个线程不能简单Sleep,不然启动魔兽1分钟左右就会掉线,所以只能在这个函数中nop掉调用检测函数的代码...
VS 3.12
0040139D
004016DB
004030F8
00401807
004031A2
004047C3
004039C2
上面7个函数Sleep掉
入口地址为0404B3D的函数,在0045B4D6处NOP五个字节
VS3.0
004016CC
004017F3
00401389
00403125
004047DC
004031CF
004039E5
上面7个函数Sleep掉
入口地址为00404B5B的函数,在0045B618出NOP五个字节
=======================================潜水分割线================================
把原理交待了我就可以安心潜水了,上面虽然是简要说明,但是只要是研究过VS反作弊的朋友一眼就能看懂,只要VS小规模更新,稍微改下代码就行了...
只是希望继续破解之路的朋友能免费下去,也不多说了,每个人的出发点不一样毕竟...
顺便说一下,我喜欢用OD直接在内存上写汇编代码(OD的汇编功能非常强大),写好后再拷贝出16进制数值,用程序WriteProcessMemory写进去,这样方便感觉很舒服...  顺便贴一下我写的汇编代码,很简单的几行...
以VS3.12为例:
0045F640  /.  55            push    ebp
0045F641  |.  8BEC          mov     ebp, esp
0045F643  |.  51            push    ecx
0045F644  |.  51            push    ecx
0045F645  |.  6A 08         push    8                                ; /n = 8
0045F647  |.  8D45 F8       lea     eax, dword ptr [ebp-8]           ; |
入口处JMP走  改为:
0045F640  ^\E9 B3FCFFFF     jmp     0045F2F8
0045F645    6A 08           push    8
0045F2F6    CC              int3
0045F2F7    CC              int3
0045F2F8    8B5C24 04       mov     ebx, dword ptr [esp+4]
0045F2FC    8B03            mov     eax, dword ptr [ebx]
0045F2FE    3D 9D134000     cmp     eax, 0040139D                                  ;比较函数地址  是 就 JMP到Sleep处              
0045F303    74 34           je      short 0045F339                    
0045F305    3D DB164000     cmp     eax, 004016DB
0045F30A    74 2D           je      short 0045F339
0045F30C    3D F8304000     cmp     eax, 004030F8
0045F311    74 26           je      short 0045F339
0045F313    3D 07184000     cmp     eax, 00401807
0045F318    74 1F           je      short 0045F339
0045F31A    3D C3474000     cmp     eax, 004047C3
0045F31F    74 18           je      short 0045F339
0045F321    3D C2394000     cmp     eax, 004039C2
0045F326    74 11           je      short 0045F339
0045F328    3D A2314000     cmp     eax, 004031A2
0045F32D    74 0A           je      short 0045F339
0045F32F    55              push    ebp
0045F330    8BEC            mov     ebp, esp
0045F332    51              push    ecx
0045F333    51              push    ecx
0045F334    E9 0C030000     jmp     0045F645                              ;JMP 回  push 8 处
0045F339    68 10270000     push    2710                                     ;Sleep
0045F33E    FF15 606E5600   call    dword ptr [566E60]               ; kernel32.Sleep
0045F344  ^ EB F3           jmp     short 0045F339                          ;JMP 到Sleep












这是内存地址
BOOL HackOn_120E(){        DWORD GameAddr=(DWORD)GetModuleHandle(L"game.dll");        DWORD oldpro;        BYTE _data[36];        BYTE  *p=b120E;        VirtualProtect((LPVOID)(GameAddr+0x01000),0x704000,PAGE_EXECUTE_READWRITE,&oldpro);        ///////////////////////////////////////////////////大地图去除迷雾        if(*p++)        {                patch(0x406B53,"\x90\x8B\x09");        }        ///////////////////////////////////////////////////大地图显示单位        if(*p++)        {                patch(0x2A0930,"\xD2");        }        ///////////////////////////////////////////////////大地图显示隐形        if(*p++)        {                patch(0x17D4C2,"\x90\x90");                patch(0x17D4CC,"\xEB\x00\xEB\x00\x75\x30");        }        ///////////////////////////////////////////////////////分辨幻影        if(*p++)        {                patch(0x1ACFFC,"\x40\xC3");        }        ///////////////////////////////////////////////////////显示神符        if(*p++)        {                patch(0x2A07C5,"\x49\x4B\x33\xDB\x33\xC9");        }        ///////////////////////////////////////////////////小地图去除迷雾        if(*p++)        {                patch(0x147C53,"\xEC");        }        //////////////////////////////////////////////////////显示单位        if(*p++)        {                patch(0x1491A8, "\x00");        }        /////////////////////////////////////////////////////显示隐形        if(*p++)        {                patch(0x1494E0,"\x33\xC0\x0F\x85");        }        ////////////////////////////////////////////////////敌方信号        if(*p++)        {                patch(0x321CC4,"\x39\xC0\x0F\x85");                patch(0x321CD7,"\x39\xC0\x75");        }        //////////////////////////////////////////////////他人提示        if(*p++)        {                patch(0x124DDD,"\x39\xC0\x0F\x85");        }        /////////////////////////////////////////////////显示敌方头像        if(*p++)        {                patch(0x137BA5,"\xE7\x7D");                patch(0x137BAC,"\x85\xA3\x02\x00\x00\xEB\xCE\x90\x90\x90\x90");        }        //////////////////////////////////////////////////盟友头像        if(*p++)        {                patch(0x137BA5,"\xE7\x7D");                patch(0x137BB1,"\xEB\xCE\x90\x90\x90\x90");        }        //////////////////////////////////////////////数字显攻速        if(*p++)        {                patch(0x802E67,"\x32");                patch(0x13BA61,"\x90\xD9\x45\x08\x83\xEC\x08\xDD\x1C\x24\x68");                DWORD tmp=0x802E64+GameAddr;                memcpy(LPVOID(GameAddr+0x13BA6C),&tmp,4);                patch(0x13BA70,"\x8D\x55\xA0\x6A\x7F\x52\xE8\x27\x7E\x25\x00\x83\xC4\x14\x6A\x7F\x8D\x45\xA0\x50");        }        /////////////////////////////////////////////数字显移速        if(*p++)        {                patch(0x802E67,"\x32");                patch(0x13C3F2,"\x90\xD9\x45\x08\x83\xEC\x08\xDD\x1C\x24\x68");                DWORD tmp=0x802E64+GameAddr;                memcpy(LPVOID(GameAddr+0x13C3FD),&tmp,4);                patch(0x13C401,"\x8D\x55\x98\x6A\x7F\x52\xE8\x96\x74\x25\x00\x83\xC4\x14\x6A\x7F\x8D\x45\x98\x50");        }        //////////////////////////////////////////////资源面板        if(*p++)        {                patch(0x13EF03,"\xEB");        }        /////////////////////////////////////////////允许交易        if(*p++)        {                patch(0x127B3D,"\x40\xB8\x64");        }        //////////////////////////////////////////////显示技能        if(*p++)        {                patch(0x12DC1A,"\x33");                patch(0x12DC1B,"\xC0");                patch(0x12DC5A,"\x33");                patch(0x12DC5B,"\xC0");                patch(0x1BFABE,"\xEB");                patch(0x442CC0,"\x90");                patch(0x442CC1,"\x40");                patch(0x442CC2,"\x30");                patch(0x442CC3,"\xC0");                patch(0x442CC4,"\x90");                patch(0x442CC5,"\x90");                patch(0x443375,"\x30");                patch(0x443376,"\xC0");                patch(0x45A641,"\x90");                patch(0x45A642,"\x90");                patch(0x45A643,"\x33");                patch(0x45A644,"\xC0");                patch(0x45A645,"\x90");                patch(0x45A646,"\x90");                patch(0x45E79E,"\x90");                patch(0x45E79F,"\x90");                patch(0x45E7A0,"\x33");                patch(0x45E7A1,"\xC0");                patch(0x45E7A2,"\x90");                patch(0x45E7A3,"\x90");                patch(0x466527,"\x90");                patch(0x466528,"\x90");                patch(0x46B258,"\x90");                patch(0x46B259,"\x33");                patch(0x46B25A,"\xC0");                patch(0x46B25B,"\x90");                patch(0x46B25C,"\x90");                patch(0x46B25D,"\x90");                patch(0x4A11A0,"\x33");                patch(0x4A11A1,"\xC0");                patch(0x54C0BF,"\x90");                patch(0x54C0C0,"\x33");                patch(0x54C0C1,"\xC0");                patch(0x54C0C2,"\x90");                patch(0x54C0C3,"\x90");                patch(0x54C0C4,"\x90");                patch(0x5573FE,"\x90");                patch(0x5573FF,"\x90");                patch(0x557400,"\x90");                patch(0x557401,"\x90");                patch(0x557402,"\x90");                patch(0x557403,"\x90");                patch(0x55E15C,"\x90");                patch(0x55E15D,"\x90");        }        ///////////////////////////////////////////////资源条        if(*p++)        {                patch(0x150981,"\xEB\x02");                patch(0x1509FE,"\xEB\x02");                patch(0x151597,"\xEB\x02");                patch(0x151647,"\xEB\x02");                patch(0x151748,"\xEB\x02");                patch(0x1BED19,"\xEB\x02");                patch(0x314A9E,"\xEB\x02");                patch(0x21EAD4,"\xEB");                patch(0x21EAE8,"\x03");        }        /////////////////////////////////////////////////野外显血        if(*p++)        {                patch(0x166E5E,"\x90\x90\x90\x90\x90\x90\x90\x90");                patch(0x16FE0A,"\x33\xC0\x90\x90");        }        ////////////////////////////////////////////////视野外点选        if(*p++)        {                patch(0x1BD5A7,"\x90\x90");                patch(0x1BD5BB,"\xEB");        }        /////////////////////////////////////////////////无限取消        if(*p++)        {                patch(0x23D60F,"\xEB");                patch(0x21EAD4,"\x03");                patch(0x21EAE8,"\x03");        }        //////////////////////////////////////////////////过-MH        if(*p++)        {                patch(0x2C5A7E,"\x90\x90");        }        /////////////////////////////////////////反-AH        if(*p++)        {                patch(0x2C240C,"\x3C\x4C\x74\x04\xB0\xFF\xEB\x04\xB0\xB0\x90\x90");                patch(0x2D34ED,"\xE9\xB3\x00\x00\x00\x90");        }        ////////////////////////////////////////////////////////////        VirtualProtect((LPVOID)(GameAddr+0x01000),0x704000,oldpro,&oldpro);        return TRUE;}BOOL HackOn_124B(){        DWORD GameAddr=(DWORD)GetModuleHandle(L"game.dll");        DWORD oldpro;        BYTE *p=b124B;        VirtualProtect((LPVOID)(GameAddr+0x01000),0x87E000,PAGE_EXECUTE_READWRITE,&oldpro);        /////////////////////////////////////////////////////////////////////大地图去除迷雾        if(*p++)        {                patch(0x74D103,"\xC6\x04\x3E\x01\x90\x46");        }        ///////////////////////////////////////////////////////大地图显示单位        if(*p++)        {                patch(0x3A201D, "\xEB");        }        ////////////////////////////////////////////////////////大地图显示隐形        if(*p++)        {                patch(0x3622D1,"\x3B");                patch(0x3622D4,"\x85");                patch(0x39A45B,"\x90\x90\x90\x90\x90\x90");                patch(0x39A46E,"\x90\x90\x90\x90\x90\x90\x90\x90\x33\xC0\x40");        }        /////////////////////////////////////////////////////分辨幻影        if(*p++)        {                patch(0x28351C,"\x40\xC3");        }        /////////////////////////////////////////////////////显示神符        if(*p++)        {                patch(0x4076CA,"\x90\x90");                patch(0x3A1F5B,"\xEB");        }        ///////////////////////////////////////////////////////小地图去除迷雾        if(*p++)        {                patch(0x356FA5,"\x90\x90");        }        /////////////////////////////////////////////////////小地图显示单位        if(*p++)        {                patch(0x361EAB,"\x90\x90\x39\x5E\x10\x90\x90\xB8\x00\x00\x00\x00\xEB\x07");        }        ///////////////////////////////////////////////////////小地图显示隐形        if(*p++)        {                patch(0x361EBC,"\x00");        }        //////////////////////////////////////////////////////敌方信号        if(*p++)        {                patch(0x43F956,"\x3B");                patch(0x43F959,"\x85");                patch(0x43F969,"\x3B");                patch(0x43F96C,"\x85");        }        ////////////////////////////////////////////////////////他人提示        if(*p++)        {                patch(0x334529,"\x39\xC0\x0F\x85");        }        ///////////////////////////////////////////////////////敌人头像        if(*p++)        {                patch(0x371640,"\xE8\x3B\x28\x03\x00\x85\xC0\x0F\x85\x8F\x02\x00\x00\xEB\xC9\x90\x90\x90\x90");        }        /////////////////////////////////////////////////////盟友头像        if(*p++)        {                patch(0x371640,"\xE8\x3B\x28\x03\x00\x85\xC0\x0F\x84\x8F\x02\x00\x00\xEB\xC9\x90\x90\x90\x90");        }        ////////////////////////////////////////////////////////////数显攻速        if(*p++)        {                patch(0x87E9A3,"\x25\x30\x2E\x32\x66\x7C\x52\x00");                patch(0x87E9B0,"\x8D\x4C\x24\x18\xD9\x44\x24\x60\x83\xEC\x08\xDD\x1C\x24\x68");                DWORD tmp=0x87E9A3+GameAddr;                memcpy(LPVOID(GameAddr+0x87E9BF),&tmp,4);                patch(0x87E9C3,"\x57\x51\xE8\xBC\xD2\xE6\xFF\x83\xC4\x14\x58\x57\x8D\x4C\x24\x18\xFF\xE0");                patch(0x339D34,"\xE8\x77\x4C\x54\x00");        }        //////////////////////////////////////////////////////////数显移速        if(*p++)        {                patch(0x87E9A3,"\x25\x30\x2E\x32\x66\x7C\x52\x00");                patch(0x87E9B0,"\x8D\x4C\x24\x18\xD9\x44\x24\x60\x83\xEC\x08\xDD\x1C\x24\x68");                DWORD tmp=0x87E9A3+GameAddr;                memcpy(LPVOID(GameAddr+0x87E9BF),&tmp,4);                patch(0x87E9C3,"\x57\x51\xE8\xBC\xD2\xE6\xFF\x83\xC4\x14\x58\x57\x8D\x4C\x24\x18\xFF\xE0");                patch(0x339B94,"\xE8\x17\x4E\x54\x00");        }        //////////////////////////////////////////////////////资源面板        if(*p++)        {                patch(0x3604CA,"\x90\x90");        }        ///////////////////////////////////////////////////////允许交易        if(*p++)        {                patch(0x34E822,"\xB8\xE0\x03\x00");                patch(0x34E827,"\x90");                patch(0x34E82A,"\xB8\x64\x90\x90");                patch(0x34E82F,"\x90");        }        //////////////////////////////////////////////////////查看技能        if(*p++)        {                patch(0x28EC8E,"\xEB");                patch(0x20318C,"\x90\x90\x90\x90\x90\x90");                patch(0x34FD28,"\x90\x90");                patch(0x34FD66,"\x90\x90\x90\x90");        }        ////////////////////////////////////////////////////////资源条        if(*p++)        {        }        ////////////////////////////////////////////////////////野外显血        if(*p++)        {        }        ////////////////////////////////////////////////////////视野外点击        if(*p++)        {                patch(0x285C4C,"\x90\x90");                patch(0x285C62,"\xEB");        }        /////////////////////////////////////////////////////////////无限取消        if(*p++)        {                patch(0x57B9FC,"\xEB");                patch(0x5B2CC7,"\x03");                patch(0x5B2CDB,"\x03");        }        ////////////////////////////////////////////////////////过-MH        if(*p++)        {                patch(0x3C8407,"\xEB\x11");                patch(0x3C8427,"\xEB\x11");        }        //////////////////////////////////////////////////////////反-AH        if(*p++)        {                patch(0x3C6E1C,"\xB8\xFF\x00\x00\x00\xEB");                patch(0x3CC2F2,"\xEB");        }        ///////////////////////////////////////////////////////////////////        VirtualProtect((LPVOID)(GameAddr+0x01000),0x87E000,oldpro,&oldpro);        return TRUE;}BOOL HackOn_124E(){        DWORD GameAddr=(DWORD)GetModuleHandle(L"game.dll");        DWORD oldpro;        BYTE* p=b124E;        VirtualProtect((LPVOID)(GameAddr+0x01000),0x87E000,PAGE_EXECUTE_READWRITE,&oldpro);        ////////////////////////////////////////////////////////////////////////大地图去除迷雾        if(*p++)        {                patch(0x74D1B9,"\xB2\x00\x90\x90\x90\x90");        }        ////////////////////////////Reveal units map        if(*p++)        {        patch(0x39EBBC,"\x75");        patch(0x3A2030,"\x90");        patch(0x3A2031,"\x90");        patch(0x3A20DB,"\x90");        patch(0x3A20DC,"\x90");        }        //show invisible        if(*p++)        {//         patch(0x356FFE,"\x90");//         patch(0x356FFF,"\x90");//         patch(0x357000,"\x90");        patch(0x362391,"\x3B");        patch(0x362394,"\x85");        patch(0x39A51B,"\x90");        patch(0x39A51C,"\x90");        patch(0x39A51D,"\x90");        patch(0x39A51E,"\x90");        patch(0x39A51F,"\x90");        patch(0x39A520,"\x90");        patch(0x39A52E,"\x90");        patch(0x39A52F,"\x90");        patch(0x39A530,"\x90");        patch(0x39A531,"\x90");        patch(0x39A532,"\x90");        patch(0x39A533,"\x90");        patch(0x39A534,"\x90");        patch(0x39A535,"\x90");        patch(0x39A536,"\x33");        patch(0x39A537,"\xC0");        patch(0x39A538,"\x40");        }        //show illusions        if(*p++)        {        patch(0x28357C,"\x40");        patch(0x28357D,"\xC3");        }        //         //show items        if(*p++)        {        patch(0x3A201B,"\xEB");        patch(0x40A864,"\x90");        patch(0x40A865,"\x90");        }        ////////////////////////////////////////////小地图 去除迷雾        if(*p++)        {                patch(0x357065,"\x90\x90");        }        //Reveal units map minimap        if(*p++)        {        patch(0x361F7C,"\x00");        }        /////////////////////////////////////////////小地图显示隐形        if(*p++)        {        }        /////////////////////////////////////////////敌方信号        if(*p++)        {                patch(0x43F9A6,"\x3B");                patch(0x43F9A9,"\x85");                patch(0x43F9B9,"\x3B");                patch(0x43F9BC,"\x85");        }        /////////////////////////////////////////////他人提示        if(*p++)        {                patch(0x3345E9,"\x39\xC0\x0F\x85");        }        //enemy hero icons        if(*p++)        {                patch(0x371700,"\xE8\x3B\x28\x03\x00\x85\xC0\x0F\x85\x8F\x02\x00\x00\xEB\xC9\x90\x90\x90\x90");        }        /////////////////////////////////////盟友头像        if(*p++)        {                patch(0x371700,"\xE8\x3B\x28\x03\x00\x85\xC0\x0F\x84\x8F\x02\x00\x00\xEB\xC9\x90\x90\x90\x90");        }        ////////////////////////////////////////////////////////////数显攻速        if(*p++)        {                patch(0x87EA63,"\x25\x30\x2E\x32\x66\x7C\x52\x00");                patch(0x87EA70,"\x8D\x4C\x24\x18\xD9\x44\x24\x60\x83\xEC\x08\xDD\x1C\x24\x68");                DWORD tmp=0x87EA63+GameAddr;                OD1(L"%08X",GameAddr);                OD1(L"%08X",tmp);                memcpy(LPVOID(GameAddr+0x87EA7F),&tmp,4);                patch(0x87EA83,"\x57\x51\xE8\xBC\xD2\xE6\xFF\x83\xC4\x14\x58\x57\x8D\x4C\x24\x18\xFF\xE0");                patch(0x339DF4,"\xE8\x77\x4C\x54\x00");        }        //////////////////////////////////////////////////////////数显移速        if(*p++)        {                patch(0x87EA63,"\x25\x30\x2E\x32\x66\x7C\x52\x00");                patch(0x87EA70,"\x8D\x4C\x24\x18\xD9\x44\x24\x60\x83\xEC\x08\xDD\x1C\x24\x68");                DWORD tmp=0x87EA63+GameAddr;                OD1(L"%08X",GameAddr);                OD1(L"%08X",tmp);                memcpy(LPVOID(GameAddr+0x87EA7F),&tmp,4);                patch(0x87EA83,"\x57\x51\xE8\xBC\xD2\xE6\xFF\x83\xC4\x14\x58\x57\x8D\x4C\x24\x18\xFF\xE0");                patch(0x339C54,"\xE8\x17\x4E\x54\x00");        }        //show resources        if(*p++)        {        patch(0x36058A,"\x90");        patch(0x36058B,"\x90");        }        ///////////////////////////////////////////        //enable trade amount        if(*p++)        {        patch(0x34E8E2,"\xB8");        patch(0x34E8E3,"\xC8");        patch(0x34E8E4,"\x00");        patch(0x34E8E5,"\x00");        patch(0x34E8E7,"\x90");        patch(0x34E8EA,"\xB8");        patch(0x34E8EB,"\x64");        patch(0x34E8EC,"\x00");        patch(0x34E8ED,"\x00");        patch(0x34E8EF,"\x90");        }        if(*p++)        {        //show skills        patch(0x2031EC,"\x90");        patch(0x2031ED,"\x90");        patch(0x2031EE,"\x90");        patch(0x2031EF,"\x90");        patch(0x2031F0,"\x90");        patch(0x2031F1,"\x90");        patch(0x34FDE8,"\x90");        patch(0x34FDE9,"\x90");        //show cooldowns        patch(0x28ECFE,"\xEB");        patch(0x34FE26,"\x90");        patch(0x34FE27,"\x90");        patch(0x34FE28,"\x90");        patch(0x34FE29,"\x90");        }        //////////////////////////////////////////////资源条        if(*p++)        {        }        //////////////////////////////////////////////野外显血        if(*p++)        {        }        //clickable units        if(*p++)        {        patch(0x285CBC,"\x90");        patch(0x285CBD,"\x90");        patch(0x285CD2,"\xEB");        }        //////////////////////////////////////////////////无限取消        if(*p++)        {                patch(0x57BA7C,"\xEB");                patch(0x5B2D77,"\x03");                patch(0x5B2D8B,"\x03");        }        /////////////////////////////////////////////////////过-MH        if(*p++)        {                patch(0x3C84C7,"\xEB\x11");                patch(0x3C84E7,"\xEB\x11");        }        ////////////////////////////////////////////////////反-AH        if(*p++)        {                        patch(0x3C6EDC,"\xB8\xFF\x00\x00\x00\xEB");                patch(0x3CC3B2,"\xEB");        }//         ///////////////////////////////////////////////////////他人选框//         if(*p++)//         {// //         }        //////////////////////////////////////////////////////////////////////////        VirtualProtect((LPVOID)(GameAddr+0x01000),0x87E000,oldpro,&oldpro);        return TRUE;}BOOL HackOff_120E(){        DWORD GameAddr=(DWORD)GetModuleHandle(L"game.dll");        DWORD oldpro;        VirtualProtect((LPVOID)(GameAddr+0x01000),0x704000,PAGE_EXECUTE_READWRITE,&oldpro);        patch(0x124DDD,"\x85");        patch(0x124DE0,"\x84");        patch(0x127B3D,"\x8B\x87\x68");        patch(0x12DC1A,"\x74\x08");        patch(0x12DC5A,"\x74\x08");        patch(0x137BA5,"\xD7\x7F");        patch(0x137BAC,"\x84");        patch(0x137BB1,"\x8B\x83\x80\x01\x00\x00");        patch(0x13B400,"\xD8\x62\x08");        patch(0x13BA61,"\x68\x00\x02\x00\x00\x8D\x4D\xA0\x51\x8D\x95\x20\xFD\xFF\xFF\x52\xE8\x56\x7E\x25\x00\x85\xF6\x74\x16\x68\x00\x02\x00\x00\x68");        DWORD tmp=0x802CC8+GameAddr;        memcpy(LPVOID(0x13BA80+GameAddr),&tmp,4);        patch(0x13C3F2,"\x68\x00\x02\x00\x00\x8D\x45\x98\x50\x8D\x8D\x18\xFD\xFF\xFF\x51\xE8\xC5\x74\x25\x00\x85\xF6");        patch(0x13C40A,"\x16\x68\x00\x02\x00\x00\x68");        tmp=0x802CC8+GameAddr;        memcpy(LPVOID(0x13C411+GameAddr),&tmp,4);        patch(0x13EF03,"\x75");        patch(0x147C53,"\xE4");        patch(0x1491A8,"\x01");        patch(0x1494E0,"\x85");        patch(0x1494E3,"\x84");        patch(0x150981,"\x85\xC0");        patch(0x1509FE,"\x85\xC0");        patch(0x151597,"\x85\xC0");        patch(0x151647,"\x85\xC0");        patch(0x151748,"\x85\xC0");        patch(0x166E5E,"\x85\xC0\x0F\x84\xBB\x03\x00\x00");        patch(0x16FE0A,"\x85");        patch(0x16FE0C,"\x74\x78");        patch(0x17D4C2,"\x75\x0E");        patch(0x17D4CC,"\x0F\x85\xB0");        patch(0x17D4D0,"\x00\x00");        patch(0x1ACFFC,"\xC3\x90");        patch(0x1BD5A7,"\x74\x2E");        patch(0x1BD5BB,"\x75");        patch(0x1BED19,"\x85\xC0");        patch(0x1BFABE,"\x75");        patch(0x21EAD4,"\x00");        patch(0x21EAE8,"\x01");        patch(0x23D60F,"\x7A");        patch(0x2A07C5,"\x8B\x59\x14\x8B\x49\x10");        patch(0x2A0930,"\xC9");        patch(0x2C240C,"\x3D\xFF\x00\x00\x00\x76\x05\xC1\xF8\x1F\xF6\xD0");        patch(0x2C5A7E,"\xEB\x0D");        patch(0x2D34ED,"\x0F\x84\xB2");        patch(0x2D34F2,"\x00");        patch(0x314A9E,"\x85\xC1");        patch(0x321CC4,"\x85");        patch(0x321CC7,"\x84");        patch(0x321CD7,"\x85");        patch(0x321CD9,"\x74");        patch(0x406B53,"\x8B\x49\x08");        patch(0x442CC0,"\x0F\x84\xDC\x00\x00\x00");        patch(0x443375,"\x74\x1E");        patch(0x45A641,"\x0F\x84\x60\x01\x00\x00");        patch(0x45E79E,"\x0F\x84\x26\x01\x00\x00");        patch(0x466527,"\x74\x0F");        patch(0x46B258,"\x0F\x84\x91\x00\x00\x00");        patch(0x4A11A0,"\x74\x0F");        patch(0x54C0BF,"\x0F\x84\xF7\x00\x00\x00");        patch(0x5573FE,"\x0F\x84\x61\x01\x00\x00");        patch(0x55E15C,"\x74\x4A");        VirtualProtect((LPVOID)(GameAddr+0x01000),0x704000,oldpro,&oldpro);        return TRUE;}BOOL HackOff_124B(){        DWORD GameAddr=(DWORD)GetModuleHandle(L"game.dll");        DWORD oldpro;        VirtualProtect((LPVOID)(GameAddr+0x01000),0x87E000,PAGE_EXECUTE_READWRITE,&oldpro);        patch(0x20318C,"\x0F\x84\x5F\x01\x00\x00");        patch(0x28351C,"\xC3\xCC");        patch(0x285C4C,"\x74\x2A");        patch(0x285C62,"\x75");        patch(0x28EC8E,"\x75");        patch(0x334529,"\x85");        patch(0x33452C,"\x84");        patch(0x339B94,"\x57\x8D\x4C\x24\x18");        patch(0x339D34,"\x57\x8D");        patch(0x339D37,"\x24\x18");        patch(0x34E822,"\x8B\x87\x6C\x01");        patch(0x34E827,"\x00");        patch(0x34E82A,"\x8B\x87\x68\x01");        patch(0x34E82F,"\x00");        patch(0x34FD28,"\x74\x08");        patch(0x34FD66,"\x85\xC0\x74\x08");        patch(0x356FA5,"\x88\x01");        patch(0x3604CA,"\xEB\x08");        patch(0x361EAB,"\x75\x0C");        patch(0x361EB0,"\x75\x07\xB9\x01");        patch(0x361EB8,"\x02");        patch(0x361EBC,"\x01");        patch(0x3622D1,"\x85");        patch(0x3622D4,"\x84");        patch(0x371641,"\xFB\x29");        patch(0x37164D,"\x8B\x85\x80\x01\x00\x00");        patch(0x39A45B,"\x8B\x97\x98\x01\x00\x00");        patch(0x39A46E,"\x0F\xB7\x00\x55\x50\x56\xE8\xF7\x7B\x00\x00");        patch(0x3A1F5B,"\x75");        patch(0x3A201D,"\x75");        patch(0x3C6E1C,"\x3D");        patch(0x3C6E21,"\x76");        patch(0x3C8407,"\x6A\x00");        patch(0x3C8427,"\x6A\x00");        patch(0x3CC2F2,"\x74");        patch(0x4076CA,"\x75\x0A");        patch(0x43F956,"\x85");        patch(0x43F959,"\x84");        patch(0x43F969,"\x85");        patch(0x43F96C,"\x84");        patch(0x57B9FC,"\x7A");        patch(0x5B2CC7,"\x00");        patch(0x5B2CDB,"\x01");        patch(0x74D103,"\x88\x14");        patch(0x74D106,"\x83\xC6\x01");        patch(0x87E9A3,"\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC");        patch(0x87E9B0,"\xC3\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xC3\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xC3\xCC\xCC\xCC\xCC");        VirtualProtect((LPVOID)(GameAddr+0x01000),0x87E000,oldpro,&oldpro);        return TRUE;}BOOL HackOff_124E(){        DWORD GameAddr=(DWORD)GetModuleHandle(L"game.dll");        DWORD oldpro;        VirtualProtect((LPVOID)(GameAddr+0x01000),0x87E000,PAGE_EXECUTE_READWRITE,&oldpro);        patch(0x2031EC,"\x0F\x84\x5F\x01\x00\x00");        patch(0x28357C,"\xC3\xCC");        patch(0x285CBC,"\x74\x2A");        patch(0x285CD2,"\x75");        patch(0x28ECFE,"\x75");        patch(0x3345E9,"\x85");        patch(0x3345EC,"\x84");        patch(0x339C54,"\x57\x8D\x4C\x24\x18");        patch(0x339DF4,"\x57\x8D");        patch(0x339DF7,"\x24\x18");        patch(0x34E8E2,"\x8B\x87\x6C\x01");        patch(0x34E8E7,"\x00");        patch(0x34E8EA,"\x8B\x87\x68\x01");        patch(0x34E8EF,"\x00");        patch(0x34FDE8,"\x74\x08");        patch(0x34FE26,"\x85\xC0\x74\x08");        patch(0x356FFE,"\x66\x85\xC0");        patch(0x357065,"\x88\x01");        patch(0x36058A,"\xEB\x08");        patch(0x361F7C,"\x01");        patch(0x362391,"\x85");        patch(0x362394,"\x84");        patch(0x371701,"\xFB\x29");        patch(0x371708,"\x84");        patch(0x37170D,"\x8B\x85\x80\x01\x00\x00");        patch(0x39A51B,"\x8B\x97\x98\x01\x00\x00");        patch(0x39A52E,"\x0F\xB7\x00\x55\x50\x56\xE8\xF7\x7B\x00\x00");        patch(0x39EBBC,"\x74");        patch(0x3A201B,"\x75");        patch(0x3A2030,"\xEB\x09");        patch(0x3A20DB,"\x23\xCA");        patch(0x3C6EDC,"\x3D");        patch(0x3C6EE1,"\x76");        patch(0x3C84C7,"\x6A\x00");        patch(0x3C84E7,"\x6A\x00");        patch(0x3CC3B2,"\x74");        patch(0x40A864,"\x75\x0A");        patch(0x43F9A6,"\x85");        patch(0x43F9A9,"\x84");        patch(0x43F9B9,"\x85");        patch(0x43F9BC,"\x84");        patch(0x57BA7C,"\x7A");        patch(0x5B2D77,"\x00");        patch(0x5B2D8B,"\x01");        patch(0x74D1B9,"\x8A\x90");        DWORD tmp=0xAB7E6C+GameAddr;        memcpy(LPVOID(GameAddr+0x74D1BB),&tmp,4);        patch(0x87EA63,"\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC");        patch(0x87EA70,"\xC3\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xC3\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xC3\xCC\xCC\xCC\xCC");        VirtualProtect((LPVOID)(GameAddr+0x01000),0x87E000,oldpro,&oldpro);        return TRUE;} 网络收集的



这是源码

BreezeMH_SRC.rar

187.43 KB, 下载次数: 92, 下载积分: 吾爱币 -1 CB

全图辅助源码

SelfHack_SRC.rar

44.3 KB, 下载次数: 69, 下载积分: 吾爱币 -1 CB

全图辅助源码

本帖被以下淘专辑推荐:

  • · 收藏|主题: 176, 订阅: 23

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

ak2500 发表于 2011-4-13 01:38
什么码啊 乱七八糟的。。。
zapline 发表于 2011-4-13 08:01
19nuclear91 发表于 2011-4-13 13:36
这个是BR的开源码 怎么被你发到这个地方来了?
yingxuej 发表于 2011-4-16 19:10
正好需要, 用来试试
iso9001 发表于 2011-4-17 05:05
这代表也发得太乱了吧
拒绝病毒 发表于 2011-4-19 20:21
什么玩意儿?
qaz789a4 发表于 2011-4-19 20:27
C++???太乱了。。。  C++软件也没有 先去下个
zsjlovezl 发表于 2011-4-19 21:39
晕了。。眼花缭乱
long369 发表于 2011-4-22 20:06
下载过来看看
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 06:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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