龙马谷

 找回密码
 立即注册

QQ登录

只需一步,快速开始

龙马谷VIP会员办理客服QQ:82926983(如果临时会话没有收到回复,请先加QQ好友再发。)
1 [已完结] GG修改器新手入门与实战教程 31课 2 [已完结] GG修改器美化修改教程 6课 3 [已完结] GG修改器Lua脚本新手入门教程 12课
4 [已完结] 触动精灵脚本新手入门必学教程 22课 5 [已完结] 手游自动化脚本入门实战教程 9课 6 [已完结] C++射击游戏方框骨骼透视与自瞄教程 27课
7 [已完结] C++零基础UE4逆向开发FPS透视自瞄教程 29课 8 [已完结] C++零基础大漠模拟器手游自动化辅助教程 22课 9 [已完结] C++零基础开发DXF内存脚本辅助教程 32课
以下是天马阁VIP教程,本站与天马阁合作,赞助VIP可以获得天马阁对应VIP会员,名额有限! 点击进入天马阁论坛
1 [已完结] x64CE与x64dbg入门基础教程 7课 2 [已完结] x64汇编语言基础教程 16课 3 [已完结] x64辅助入门基础教程 9课
4 [已完结] C++x64内存辅助实战技术教程 149课 5 [已完结] C++x64内存检测与过检测技术教程 10课 6 [已完结] C+x64二叉树分析遍历与LUA自动登陆教程 19课
7 [已完结] C++BT功能原理与x64实战教程 29课 8 [已完结] C+FPS框透视与自瞄x64实现原理及防护思路
查看: 7020|回复: 0

开源C++ DXF手动倍功源码

[复制链接]

5

主题

1

回帖

8

积分

编程入门

Rank: 1

龙马币
20
昨晚也不是我 | 显示全部楼层 |阅读模式

开源C++ DXF手动倍功源码

  1. #include<string>
  2. #include<vector>
  3. #include<Windows.h>
  4. #include"BaseAddr.h"
  5. using namespace std;
  6. #define Base_NoticeCallAddr    0x002E1F260 //喇叭公告
  7. #define Base_NoticeCallECXAddr 0x0062E04CC // 商店基质

  8. CONST INT 技能CALL = 0x28D9EF0;
  9. void Bulletin(wstring text);

  10. BOOL Writebyte(int Addr, vector<byte> by)
  11. {
  12.         int len = by.size();
  13.         byte *address = new byte[len];
  14.         for (int i = 0; i < len; i++)
  15.         {
  16.                 address = by;
  17.         }

  18.         if (!WriteProcessMemory(GetCurrentProcess(), (LPVOID)Addr, address, len, 0))
  19.         {
  20.                 return FALSE;
  21.         }
  22.         else
  23.         {
  24.                 return TRUE;
  25.         }
  26. }
  27. void 技能Call(int 触发指针, int 代码, int 伤害, int X, int Y, int Z)
  28. {
  29.          
  30.         int 空白地址, 技能结构[25] = { 0 };
  31.         技能结构[0] = 触发指针;
  32.         技能结构[2] = 代码;
  33.         技能结构[3] = 伤害;
  34.         技能结构[6] = X;
  35.         技能结构[7] = Y;
  36.         技能结构[8] = Z;
  37.         技能结构[15] = 0;
  38.         空白地址 = (int)&技能结构;
  39.         __asm
  40.         {

  41. mov ecx,空白地址
  42. mov eax,技能CALL
  43. call eax
  44.         }
  45. }
  46. INT ReadIit(INT ADDR)
  47. {
  48.         INT 结果;
  49.         if (!ReadProcessMemory(GetCurrentProcess(), (LPVOID)ADDR, &结果, 4, 0))
  50.                 return 0;
  51.         else
  52.                 return 结果;
  53. }



  54. void 缓冲Call(int cpy)
  55. {
  56.         _asm
  57.         {
  58.                 push cpy
  59.                 mov ecx, 发包基址
  60.                 mov ecx, [ecx]
  61.                 mov eax, 缓冲CALL
  62.                 call eax
  63.         }
  64. }

  65. void 发包Call()
  66. {
  67.         __asm
  68.         {
  69.                 mov eax, 发包CALL
  70.                 call eax
  71.         }
  72. }

  73. void 加密Call(int py, int size)
  74. {
  75.         int Com;
  76.         if (size == 1)
  77.         {
  78.                 Com = 加密包CALL;
  79.         }
  80.         else if (size == 2)
  81.         {
  82.                 Com = 加密包CALL + 0x30;
  83.         }
  84.         else if (size == 4)
  85.         {
  86.                 Com = 加密包CALL + 0x60;
  87.         }
  88.         else if (size == 8)
  89.         {
  90.                 Com = 加密包CALL + 0x90;
  91.         }
  92.         __asm
  93.         {
  94.                 push py
  95.                 mov ecx, 发包基址
  96.                 mov ecx, [ecx]
  97.                 call Com
  98.         }
  99. }

  100. void 剑歌组包拾取(int 物品地址)
  101. {
  102.         缓冲Call(43);
  103.         加密Call(物品地址, 4);
  104.         加密Call(0, 1);
  105.         加密Call(0, 1);   //(2,1)
  106.         加密Call(0, 2);
  107.         加密Call(0, 2);
  108.         加密Call(0, 2);
  109.         加密Call(0, 2);
  110.         加密Call(0, 2);
  111.         加密Call(0, 2);
  112.         加密Call(0, 2);
  113.         发包Call();
  114. }


  115. int 剑歌解密(int addr)
  116. {
  117.         int eax, esi, edx;
  118.         eax = *(int*)addr;
  119.         esi = *(int*)解密基址;
  120.         edx = eax;
  121.         edx >>= 16;
  122.         edx = *(int*)(esi + edx * 4 + 36);
  123.         eax = eax & 0xffff;
  124.         eax = *(int*)(edx + eax * 4 + 8468);
  125.         edx = WORD(eax);
  126.         esi = edx;
  127.         esi <<= 16;
  128.         esi = esi ^ edx;
  129.         edx = *(int*)(addr + 4);
  130.         eax = esi ^ edx;
  131.         return eax;
  132. }


  133. int 剑歌汇编加法(int t1, int t2)
  134. {
  135.         int sum;
  136.         _asm
  137.         {
  138.                 mov eax, t1
  139.                 mov ebx, t2
  140.                 add eax, ebx
  141.                 mov sum, eax
  142.         }
  143.         return sum;
  144. }


  145. BOOL 是否开门()
  146. {
  147.         int 人物指针, sum;
  148.         人物指针 = *(int*)人物基址;
  149.         sum = *(int*)剑歌汇编加法(人物指针, 地图偏移);
  150.         if (剑歌解密(剑歌汇编加法(sum, 280)) == 0)
  151.         {
  152.                 return true;
  153.         }
  154.         else
  155.         {
  156.                 return false;
  157.         }
  158. }



  159. BOOL 是否在城镇()
  160. {
  161.         int 人物指针, sum;
  162.         人物指针 = *(int*)人物基址;
  163.         sum = *(int*)剑歌汇编加法(人物指针, 地图偏移);
  164.         if (sum == 0)
  165.         {
  166.                 return true;
  167.         }
  168.         else
  169.         {
  170.                 return false;
  171.         }
  172. }
  173. void 剑歌拾取遍历()
  174. {
  175.         int 人物指针, 地图, 首地址1, 尾地址1, 物品数量, 物品计次 = 1, 临时地址, 物品类型, 阵营, 物品ID;
  176.         if (是否在城镇() == TRUE)
  177.         {
  178.                 return;
  179.         }
  180.         人物指针 = *(int*)人物基址;
  181.         地图 = *(int*)剑歌汇编加法(人物指针, 地图偏移);
  182.         首地址1 = *(int*)剑歌汇编加法(地图, 首地址);
  183.         尾地址1 = *(int*)剑歌汇编加法(地图, 尾地址);
  184.         物品数量 = (尾地址1 - 首地址1) / 4;
  185.         while (物品计次 <= 物品数量)
  186.         {
  187.                 临时地址 = *(int*)剑歌汇编加法(首地址1, 4 * 物品计次);
  188.                 物品类型 = *(int*)剑歌汇编加法(临时地址, 类型偏移);
  189.                 阵营 = *(int*)剑歌汇编加法(临时地址, 阵营偏移);
  190.                 if (物品类型 == 289 && 阵营 == 200)
  191.                 {
  192.                         if (人物指针 != 临时地址)
  193.                         {
  194.                                 物品ID = 剑歌解密(临时地址 + 188);
  195.                                 剑歌组包拾取(物品ID);
  196.                         }

  197.                 }
  198.                 物品计次++;
  199.         }
  200. }




  201. void 撿垃圾()
  202. {

  203.         if(是否开门()==TRUE)
  204.         {
  205.                 剑歌拾取遍历();

  206.         }
  207. }

  208. void Send_发包()
  209. {
  210.         _asm
  211.         {
  212.                 mov eax, 发包CALL
  213.                 call eax
  214.         }
  215. }
  216. void  Send_加密Call(int 参数, int 长度)
  217. {
  218.         int 加密包Call;
  219.         if (长度 == 1)
  220.                 加密包Call = 加密包CALL;
  221.         if (长度 == 2)
  222.                 加密包Call = 加密包CALL + 48;
  223.         if (长度 == 3)
  224.                 加密包Call = 加密包CALL + 96;
  225.         if (长度 == 4)
  226.                 加密包Call = 加密包CALL + 144;
  227.         

  228.         _asm
  229.         {
  230.                 push 参数
  231.                 mov ecx, 发包基址
  232.                 mov ecx, [ecx]
  233.                 mov eax, 加密包Call
  234.                 call eax
  235.         }
  236. }
  237. void Send_缓冲CALL(int 包头)
  238. {

  239.         _asm
  240.         {       push 0x00000000
  241.                 push 包头
  242.                 mov ecx, 发包地址
  243.                 mov ecx, [ecx]
  244.                 mov eax, 缓冲CALL
  245.                 call eax
  246.         }
  247. }

  248. void 组包拾取(int 物品地址, int x, int y)
  249. {

  250.         int 物品X = x + 7;
  251.         int 物品Y = y + 5;
  252.         Send_缓冲CALL(43);
  253.         Send_加密Call(物品地址, 4);
  254.         Send_加密Call(0, 1);
  255.         Send_加密Call(2, 1);
  256.         Send_加密Call(x, 2);
  257.         Send_加密Call(y, 2);
  258.         Send_加密Call(0, 2);
  259.         Send_加密Call(物品X, 2);
  260.         Send_加密Call(物品Y, 2);
  261.         Send_加密Call(0, 2);
  262.         Send_加密Call(0, 2);
  263.         Send_发包();
  264. }


  265. DWORD  WINAPI 按键线程(LPVOID Param)
  266. {
  267.         int hmodule, Tenrpcs;
  268.         INT  P;//人物指针
  269.         MSG msg = { 0 };
  270.         RegisterHotKey(NULL, 0x24, 0, VK_HOME);
  271.         RegisterHotKey(NULL, 0x70, 0, VK_F1);
  272.         RegisterHotKey(NULL, 0x71, 0, VK_F2);
  273.         RegisterHotKey(NULL, 0x72, 0, VK_F3);
  274.         RegisterHotKey(NULL, 0x73, 0, VK_F4);
  275.         RegisterHotKey(NULL, 0x74, 0, VK_END);
  276.         RegisterHotKey(NULL, 0x80, 0, VK_F7);
  277.         while (GetMessage(&msg, 0, 0, 0))
  278.         {


  279.                 if (WM_HOTKEY == msg.message)
  280.                 {
  281.                         if (VK_HOME == HIWORD(msg.lParam))
  282.                         {
  283.                                 RegisterHotKey(NULL, 0x74, 0, VK_F5);
  284.                                 RegisterHotKey(NULL, 0x75, 0, VK_F6);
  285.                                 RegisterHotKey(NULL, 0x81, 0, 'V');
  286.                                 Bulletin(L"内心毫无波澜甚至笑出了声");
  287.                                 Bulletin(L"F1  全屏钩子");
  288.                                 Bulletin(L"F2  独家倍功");
  289.                                 Bulletin(L"F3  技能无CD");
  290.                                 Bulletin(L"F4  Hook技能");
  291.                                 Bulletin(L"F6  人物无敌");
  292.                                 Bulletin(L"F7  释放秒杀");
  293.                                 Bulletin(L"End  自動入包");
  294.                                 Bulletin(L"V  直接入包");
  295.                                 Bulletin(L"Hello My Loneliness");
  296.                                 //初始化TenRPCS.dll+1A6E90 - C3                    - ret
  297.                                 //TenRPCS.dll+1A6ECB - E9 8D000000           - jmp TenRPCS.dll+1A6F5D


  298.                                 hmodule = (int)GetModuleHandle(L"dnf.exe");
  299.                                 Tenrpcs = (int)GetModuleHandle(L"TenRpcs.dll");
  300.                                 Writebyte(Tenrpcs + 0x1A6E90, { 0xC3 });
  301.                                 Writebyte(Tenrpcs + 0x1A6ECB, { 0xE9,0x8D,0x00,0x00,0x00 });
  302.                                 //Writebyte(hmodule + 0x44B9BD2, {0x90 });//注释一条检测试试。
  303.                                 WritePrivateProfileString(L"剑歌", L"技能代码", L"39002", L"C:\\Users\\Administrator\\Desktop\\剑歌.ini");
  304.                         }
  305.                 }
  306.                 if (VK_END == HIWORD(msg.lParam))
  307.                 {
  308.                         SetTimer(NULL, 3, 1000, (TIMERPROC)撿垃圾);
  309.                 }
  310.                 if (VK_F1 == HIWORD(msg.lParam))
  311.                 {

  312.                         Writebyte(hmodule + 0x4C680, { 0xC3 });
  313.                         Bulletin(L"全屏攻击  - Open");

  314.                 }
  315.                 if (VK_F2 == HIWORD(msg.lParam))
  316.                 {
  317.                         Writebyte(hmodule + 0x28286F9, { 0xB8,0x99,0x99,0x99 });//独家伤害基质
  318.                         Bulletin(L"独家倍功  - Open");
  319.                 }
  320.                 if (VK_F3 == HIWORD(msg.lParam))
  321.                 {
  322.                         Writebyte(hmodule + 0x27E6F52, { 0xEB,0x33 });
  323.                         Bulletin(L"技能无CD  - Open");
  324.                 }

  325.                 if (VK_F4 == HIWORD(msg.lParam))
  326.                 {
  327.                         Writebyte(hmodule + 0x32AFC49, { 0xE9,0xB2,0x0B,0xD5,0xFC });
  328.                         Writebyte(hmodule + 0x32AFC4E, { 0x90 });
  329.                         Writebyte(hmodule + 0x800, { 0xBA,0xD9,0x11,0x01,0x00 });
  330.                         Writebyte(hmodule + 0x805, { 0xE9,0x45,0xF4,0x2A,0x03 });
  331.                         
  332.                         Bulletin(L"HOOK技能  - Open");
  333.                 }
  334.                 if (VK_F5 == HIWORD(msg.lParam))
  335.                 {
  336.                         
  337.                 }
  338.                 if (VK_F6 == HIWORD(msg.lParam))
  339.                 {
  340.                         P = ReadIit(0x642B240); //人物基质
  341.                         P += 0xAA4;            //无敌偏移
  342.                         Writebyte(P, { 100 });

  343.                         Bulletin(L"无敌  - Open");
  344.                 }
  345.                
  346.                         if (VK_F7 == HIWORD(msg.lParam))
  347.                 {
  348.                         技能Call(P, GetPrivateProfileInt(L"剑歌", L"技能代码", NULL, L"C:\\Users\\Administrator\\Desktop\\剑歌.ini"), 999999, 200, 500, 0);
  349.         
  350.                         Bulletin(L"释放Call  - Open");
  351.                 }
  352.                         
  353.                         if ('V' == HIWORD(msg.lParam))
  354.                         {

  355.                                 剑歌拾取遍历();
  356.                         }

  357.         }

  358.         return 0;
  359. }

  360. void Bulletin(wstring text)
  361. {

  362.         if (text.empty()) {
  363.                 return;
  364.         }

  365.         wstring value = L"剑歌:2030757644 ";
  366.         value += text;
  367.         const TCHAR* txtAdr = value.c_str();

  368.         __asm
  369.         {
  370.                 PUSH 0
  371.                 PUSH 0
  372.                 PUSH 0
  373.                 PUSH 0
  374.                 PUSH 0
  375.                 PUSH 0x24//喇叭显示的位置
  376.                 PUSH 0xFFFF00FF;//喇叭颜色
  377.                 PUSH txtAdr;
  378.                 MOV ECX, Base_NoticeCallECXAddr//商店基址
  379.                 MOV ECX, [ECX]
  380.                 MOV ECX, [ECX + 0x50]
  381.                 MOV EAX, Base_NoticeCallAddr//喇叭公告
  382.                 CALL EAX
  383.         }
  384. }
  385. HANDLE hThreadapp;
  386. BOOL WINAPI DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
  387. {
  388.         switch (ul_reason_for_call)
  389.         {

  390.         case DLL_PROCESS_ATTACH:
  391.         {
  392.         
  393.              hThreadapp = CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)按键线程, 0, 0, 0);
  394.         }

  395.         //break;
  396.         case DLL_THREAD_ATTACH:
  397.                 //break;
  398.         case DLL_THREAD_DETACH:
  399.                 //break;
  400.         case DLL_PROCESS_DETACH:
  401.                 break;
  402.         }

  403.         return  TRUE;

  404. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

龙马谷| C/C++辅助教程| 安卓逆向安全| 论坛导航| 免责申明|Archiver|
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表龙马谷立场!
任何人不得以任何方式翻录、盗版或出售本站视频,一经发现我们将追究其相关责任!
我们一直在努力成为最好的编程论坛!
Copyright© 2018-2021 All Right Reserved.
在线客服
快速回复 返回顶部 返回列表