1。打开游戏查看特征 发现不是真正的exe程序


发现这个才是

找特征 先到代码段搜索字符串 找到一些打开浏览器

都下断


运行发现断不下来 ,那就到每个call里下断

再次运行断下来了 但这个是一个死循环

这个才是点击游戏的回调

f8 出现可疑字符串

继续 又出现可疑字符串

到文件里改名运行试试 果然是的

但是再次启动最开始那个程序报错

不管它直接分析新程序

先查壳 压缩壳直接脱

运行程序查看特点 查看行为 等发现它创建一个进程打开真正的程序
下断 CreateProcessA

发现了真的程序

运行程序 但是有报错
直接上火绒剑查打开它的程序 看有哪些行为

直接手动改

到这里就可以直接用了 现在就开始写辅助先分析
先查特点
1.有声音
2.有道具
3.相同的去掉
4.有时间

我的思路是先找到×××或者×××的回调函数,不管那么多先从声音文件开始(×××的声音的文件是:

到代码段查字符串

下断

当有×××的时候同时点击×××就会断下然后查看调用栈


然后再分析下一些关键断点

以找到了一个关跳 意思是如果俩个是相等的就会消掉

nop试试

果然是的 发现只要第一下点击×××然后随便点下 就会有增加

现在开始找它为什么会增 也就是说它的增加的函数
通过上面有的断点发现如果是点击的是的道具框总是会调用这个函数 同时发现都是调用的一个函数

进入函数看看原来是个道具减少函数

修改下 把减少改成增加

果然

同样找到了真正的增加函数


现在回过来找它是怎么调用的 发现一些 f1 f4等等

刚才有分析它的增加减少函数 很定有对内存操作查看内存


找到了这些 那就再分析 哪个是×××啊 发现是f4
这里出现了错误分析 条件断点不断点下来 但是找到了上面有个关键函数 是一个道具分发 因为所有道具最终调的一个函数


重点来了那就慢慢分析这些参数 点下×××

这里发现有一个地址哪都能看到 随便到个地方看看

那应该是一个对象的基址 到调用栈往上层跟 一直有 可能也是个全局的用ce搜下 发现几个全局 (绿色)那就先保存再试

目前找到了三个点 ×××的增减 道具分发函数 点击图片判断是否相等
同样思路 可以找到定时函数这里找到了判断跳转:如果时间到了就结束弹框

这里打到了跳转直接改了(分析发现是如果相等就做一些准备工作可以是加载失败框什么的 其它情况一直是不等于 改成jmp)


成功

这里就简单的分析了下分析 报告:

12ac5a   ×××地址12AC7E
对比
0041B1CE    E8 AD4BFFFF     CALL kyodai.0040FD80                     ; 都走
0041B1D3    8A45 E8         MOV AL,BYTE PTR SS:[EBP-0x18]
0041B1D6    3845 D4         CMP BYTE PTR SS:[EBP-0x2C],AL
0041B1D9    90              NOP                                      ; 不相等这里跳过
0041B1DA    90              NOP
0041B1DB    90              NOP
0041B1DC    90              NOP
0041B1DD    90              NOP
0041B1DE    90              NOP
0041B1DF    80BE 48090000 D>CMP BYTE PTR DS:[ESI+0x948],0xD4
0041B1E6    0F85 CA010000   JNZ kyodai.0041B3B6                      ; 相等这里跳过
0041B1EC    FF75 E4         PUSH DWORD PTR SS:[EBP-0x1C]
0041B1EF    8BCE            MOV ECX,ESI
0041B1F1    FF75 E0         PUSH DWORD PTR SS:[EBP-0x20]
0041B1F4    E8 076E0000     CALL kyodai.00422000增加道具函数
0041B487    FF75 D8         PUSH DWORD PTR SS:[EBP-0x28]
0041B48A    E8 89D90000     CALL kyodai.00428E18
0041B48F    85C0            TEST EAX,EAX
0041B491    59              POP ECX                                  ; 0012A1F4
0041B492    74 0A           JE SHORT kyodai.0041B49E
0041B494    FF75 D8         PUSH DWORD PTR SS:[EBP-0x28]
0041B497    8BCE            MOV ECX,ESI
0041B499    E8 DB240000     CALL kyodai.0041D979                     ; 增加×××函数
0041B49E    8B8E 841E0000   MOV ECX,DWORD PTR DS:[ESI+0x1E84]
0041B4A4    53              PUSH EBX
0041B4A5    53              PUSH EBX
减少×××函数
0042AA97    C1E0 04         SHL EAX,0x4
0042AA9A    03C7            ADD EAX,EDI
0042AA9C    90              NOP
0042AA9D    90              NOP
0042AA9E    90              NOP
0042AA9F    90              NOP
0042AAA0    66:3958 06      CMP WORD PTR DS:[EAX+0x6],BX
0042AAA4    7F 0B           JG SHORT kyodai.0042AAB1
0042AAA6    3958 0C         CMP DWORD PTR DS:[EAX+0xC],EBX增加×××函数
0042AA6D    8858 05         MOV BYTE PTR DS:[EAX+0x5],BL
0042AA70    66:FF40 06      INC WORD PTR DS:[EAX+0x6]
0042AA74    0FBF40 06       MOVSX EAX,WORD PTR DS:[EAX+0x6]
0042AA78    EB 02           JMP SHORT kyodai.0042AA7C
0042AA7A    33C0            XOR EAX,EAX关键函数
0041AF11    E8 F32E0000     CALL kyodai.0041DE09
0041AF16    8D45 0C         LEA EAX,DWORD PTR SS:[EBP+0xC]
0041AF19    8BCE            MOV ECX,ESI                              ; 函数3
0041AF1B    50              PUSH EAX
0041AF1C    E8 A8590000     CALL kyodai.004208C9
0041AF21    8BF8            MOV EDI,EAX
0041AF23    8D45 0C         LEA EAX,DWORD PTR SS:[EBP+0xC]
0041AF26    50              PUSH EAX
0041AF27    8BCE            MOV ECX,ESI                              ; 标签2
0041AF29    E8 D8140000     CALL kyodai.0041C406
0041AF2E    50              PUSH EAX
0041AF2F    57              PUSH EDI
0041AF30    8BCE            MOV ECX,ESI
0041AF32    E8 C9310000     CALL kyodai.0041E100
0041AF37    5F              POP EDI                                  ; kyodai.0041AF2E
0041AF38    FF75 10         PUSH DWORD PTR SS:[EBP+0x10]
0041AF3B    803D 848D4500 0>CMP BYTE PTR DS:[0x458D84],0x0
0041AF42    8BCE            MOV ECX,ESI
0041AF44    FF75 0C         PUSH DWORD PTR SS:[EBP+0xC]
0041AF47    FF75 08         PUSH DWORD PTR SS:[EBP+0x8]
0041AF4A    74 07           JE SHORT kyodai.0041AF53                 ; 如果俩个相等
0041AF4C    E8 7B090000     CALL kyodai.0041B8CC
0041AF51    EB 05           JMP SHORT kyodai.0041AF58
0041AF53    E8 05000000     CALL kyodai.0041AF5D                     ; 音乐
0041AF58    5E              POP ESI                                  ; kyodai.0041AF2E
0041AF59    5D              POP EBP                                  ; kyodai.0041AF2E
0041AF5A    C2 0C00         RETN 0xC                                 ; 这里返回
0041AF5D    B8 5C744400     MOV EAX,kyodai.0044745C                  ; 父%E
0041AF62    E8 F9CD0100     CALL kyodai.00437D60
0041AF67    81EC A0010000   SUB ESP,0x1A0
0041AF6D    53              PUSH EBX                                 ; kyodai.0040CA97
0041AF6E    56              PUSH ESI//动画
68A2EB18    FFD0            CALL EAX  68A2EB1A    85C0            TEST EAX,EAX
68A2EB1C    74 73           JE SHORT mfc42.68A2EB91
68A2EB1E    837D FC 00      CMP DWORD PTR SS:[EBP-0x4],0x0
68A2EB22    74 28           JE SHORT mfc42.68A2EB4C
68A2EB24    8B43 04         MOV EAX,DWORD PTR DS:[EBX+0x4]
68A2EB27    3D 18010000     CMP EAX,0x118
68A2EB2C    74 07           JE SHORT mfc42.68A2EB35
68A2EB2E    3D 04010000     CMP EAX,0x104
68A2EB33    75 17           JNZ SHORT mfc42.68A2EB4C
68A2EB35    6A 01           PUSH 0x1
68A2EB37    8BCE            MOV ECX,ESI
68A2EB39    E8 3CD1FDFF     CALL mfc42.#6215
68A2EB3E    8BCE            MOV ECX,ESI//定时
0040F502    8B06            MOV EAX,DWORD PTR DS:[ESI]                    ; kyodai.0044CE70
0040F504    8BCE            MOV ECX,ESI
0040F506    FF50 30         CALL DWORD PTR DS:[EAX+0x30]
0040F509    39BE C0000000   CMP DWORD PTR DS:[ESI+0xC0],EDI
0040F50F    EB 12           JNZ SHORT kyodai.0040F523   //JMP                   ; 时间
0040F511    8B06            MOV EAX,DWORD PTR DS:[ESI]                    ; kyodai.0044CE70
0040F513    8BCE            MOV ECX,ESI
0040F515    FF50 14         CALL DWORD PTR DS:[EAX+0x14]
0040F518    85C0            TEST EAX,EAX
0040F51A    74 07           JE SHORT kyodai.0040F523

辅助源码 (dll 要注入进去)

// dllmain.cpp : 定义 DLL 应用程序的入口点。
#include "stdafx.h"
#include <windows.h>void fun()
{/*0012A1F4=this=[0x47FDE0]0012A688=ecx=[this+0x494]0041DE4D  |.  8B86 94040000 mov eax,dword ptr ds:[esi+0x494]         ;  123.0044CE700041DE53  |.  8D8E 94040000 lea ecx,dword ptr ds:[esi+0x494]         ;  0012A6880041DE59  |.  52            push edx0041DE5A  |.  53            push ebx0041DE5B  |.  53            push ebx0041DE5C  |.  FF50 28       call dword ptr ds:[eax+0x28]             ;  道具事件分发00129DBC   0000000000129DC0   0000000000129DC4   000000F4 是×××*/int BaseAddr = 0x47FDE0;int m_Esi = *(int*)BaseAddr;_asm{mov esi, [m_Esi];mov eax, dword ptr ds : [esi + 0x494];lea ecx, dword ptr ds : [esi + 0x494];push 0xf4;push ebx;push ebx;call dword ptr ds : [eax + 0x28];}}LRESULT CALLBACK WindowProc(_In_  HWND hwnd,_In_  UINT uMsg,_In_  WPARAM wParam,_In_  LPARAM lParam
)
{switch (uMsg){case WM_CREATE:{// 创建一个按钮CreateWindow(L"Button",L"清除一个",WS_CHILD | WS_VISIBLE | WS_BORDER,0, 0, 80, 25,hwnd,(HMENU)0x1008,0, 0);// 创建一个按钮CreateWindow(L"Button",L"全部清除",WS_CHILD | WS_VISIBLE | WS_BORDER,0, 30, 80, 25,hwnd,(HMENU)0x1009,0, 0);}case WM_COMMAND:{WORD HiwParam = HIWORD(wParam);//高两字节:控件通码WORD LowParam = LOWORD(wParam);//低两字节:控件id//清除一个if (HiwParam == BN_CLICKED&&LowParam == 0x1008){fun();return 1;}if (HiwParam == BN_CLICKED&&LowParam == 0x1009){//0041CB72 | .  8B8E 841E0000 mov ecx, dword ptr ds : [esi + 0x1E84]//0041CB7B | .E8 57C60000   call <123.返回剩余方块个数>//for fun sleep(100)//for(;;){//fun();//}return 1;}}break;case WM_CLOSE:{EndDialog(hwnd, 0);ExitProcess(0);return 0;}default:break;}return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
DWORD WINAPI DoCreateDialog(LPVOID lpParameter)
{MSG msg;WNDCLASS wndclass = { 0 };HMODULE hinstance = GetModuleHandleW(0);wndclass.style = CS_HREDRAW | CS_VREDRAW;wndclass.lpfnWndProc = WindowProc;wndclass.hInstance = hinstance;wndclass.hIcon = 0;wndclass.lpszClassName = L"qqllk";wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);RegisterClass(&wndclass);  //注册窗口HWND hwnd = CreateWindowW(L"qqllk", TEXT("qqllk助手"),WS_POPUP | WS_BORDER | WS_CAPTION | WS_SYSMENU, 0,0, 100, 100,0, 0, hinstance, 0);ShowWindow(hwnd, 5);UpdateWindow(hwnd);while (GetMessage(&msg, NULL, 0, 0)){TranslateMessage(&msg);DispatchMessage(&msg);}return msg.lParam;
}void funA()
{HANDLE ht = CreateThread(0, 0, DoCreateDialog, 0, 0, 0);
}/*
思路一 : 指南针 配合清除函数
思路二 : 查找×××函数1.根据ce 搜索到减少道具数值的地方
2.跟出减少道具数值函数
3.来到 调用减少道具数值函数的地方
4. 查找是谁调用的减少道具数值函数
5.即可找到关键点  道具分发函数  f0-fb 间
6.可以通过该函数调用多个道具
*/BOOL APIENTRY DllMain(HMODULE hModule,DWORD  ul_reason_for_call,LPVOID lpReserved
)
{static bool Onec = 0;switch (ul_reason_for_call){case DLL_PROCESS_ATTACH:case DLL_THREAD_ATTACH:if (Onec == 0){funA();}Onec = 1;break;case DLL_THREAD_DETACH:case DLL_PROCESS_DETACH:break;}return TRUE;
}

转载于:https://blog.51cto.com/haidragon/2121880

qq连连看分析编写简单辅助相关推荐

  1. 【Windows 逆向】CheatEngine 工具 ( 汉化版 CE 工具推荐 | 编写简单 C++ 程序 | C++ 程序执行分析 | 使用 CE 修改上述 C++ 程序 )

    文章目录 一.汉化版 CE 工具推荐 二.编写简单 C++ 程序 三.C++ 程序执行分析 四.使用 CE 修改上述 C++ 程序 一.汉化版 CE 工具推荐 推荐一个汉化版的 CE 工具 : htt ...

  2. 编写简单的辅助脚本来在 Google 表格上记账

    我的第二份工作入职在即,而这一次则真的是完全跑到了一个陌生的城市了.租房,购置相关用品,还尚未工作钱就花掉一堆.尽管我个人之前一直都没有过记账的习惯,但为了让自己能够搞清楚自己的钱都花在哪里了,于是还 ...

  3. 200行Python 实现的qq连连看辅助, 用于学习, 请不要拿去伤害玩家们

    Linux编程点击右侧关注,免费入门到精通! 作者丨Laziji https://laboo.top/2018/11/07/lianliankan/ 前言 Python 实现的qq连连看辅助, 仅用于 ...

  4. python爬虫简单实例-Python 利用Python编写简单网络爬虫实例3

    利用Python编写简单网络爬虫实例3 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站"http://bbs.51tes ...

  5. 国内沪深股市的股票策略分析的简单案例

    国内沪深股市的股票策略分析的简单案例 最近学习了一段时间的python,觉得用来做股票策略分析还是挺有趣的,因此参考网上的一些例子,以及tushare工具指南,编写了一个功能简单的股票策略分析程序,抛 ...

  6. 【开源】java做游戏之QQ连连看java单机高仿版(算是目前最高仿的了)

    QQ连连看JAVA高仿单机版V1.0 前言 为什么说是目前最高仿的呢,因为想做这个的一般是新手,要实现的跟我一样有点难度,至少我在网上没搜到(java版本).还有就是高手对这个没兴趣,不会做这个玩意儿 ...

  7. 初学java之模拟QQ聊天软件(简单实现)

    引言:这个程序是自从学习java以来写的第一个比较大的图形界面程序,花费了大约一周的时间,作为期末的课程设计,也算是基本上完成了任务,当然由于作者的编程能力有限,代码中难免存在BUG,不太简练,今天搬 ...

  8. QQ协议分析及其还原(二)

    http://www.iprotocolsec.com/2012/02/28/qq%E5%8D%8F%E8%AE%AE%E5%88%86%E6%9E%90%E5%8F%8A%E5%85%B6%E8%B ...

  9. C语言编写一个赋值程序,实验2 用C语言编写简单程序——2.1 基本数据处理.doc

    实验2 用C语言编写简单程序--2.1 基本数据处理 实验2 用C语言编写简单程序 2.1 基本数据处理 [实验目的] (1)掌握算术表达式和赋值表达式的使用. (2)掌握基本输出函数的使用. (3) ...

  10. python程序-30分钟学会用Python编写简单程序

    原标题:30分钟学会用Python编写简单程序 参与文末每日话题讨论,赠送异步新书 异步图书君 学习目标 知道有序的软件开发过程的步骤. 了解遵循输入.处理.输出(IPO)模式的程序,并能够以简单的方 ...

最新文章

  1. 【Linux 经典面试题】
  2. MAT之GA:遗传算法(GA)解决M-TSP多旅行商问题
  3. LINUX系统管理员技术(Admin)-------第二天
  4. 如何在CRM和C4C中用代码判断当前是否处于configuration模式
  5. 走进异步编程的世界 - 开始接触 async/await
  6. 记录一个前端架构的想法
  7. 简单团队-爬取豆瓣电影T250-项目进度
  8. echarts 没有icon导致工具栏无法显示_Icon失误导致OMG输掉比赛,曾经的单杀王也拉垮?天秀操作难再现...
  9. 11、web端主要应用在哪些领域?
  10. LeetCode 5354. 通知所有员工所需的时间
  11. Webkit之Frame
  12. 3dmaxuv展开很多线_考研 | 最全考研复试时间线!参考价值超大!
  13. 10.用好远程联机服务器
  14. Servlet请求转发RequestDispatcher接口
  15. delphi xe5 android,android – 发送电子邮件Delphi XE5
  16. 主流HTML5游戏框架的分析和对比(Construct2、ImpactJS、CreateJS、Cocos2d-html5……)
  17. [源码和文档分享]基于QT实现的alpha-beta剪枝算法搜索的象棋人机博弈游戏
  18. 计算机Excel设置透视图,excel共享表格数据-EXCEL在共享模式中,如何让数据透视表能够自动刷新?...
  19. 设置MyEclipse2015黑色主题背景及删除主题
  20. android电话本导入iphone,如何将Android电话簿导入iPhone手机

热门文章

  1. 三容水箱液位控制系统_基于Labview软件编程的三容水箱液位控制系统
  2. 5. 软件工程 (一个大尺度的问题)
  3. 淘宝买卖交流爆笑全集
  4. 张宇考研数学:命题人8套卷使用方法指导,做之前先来看看~
  5. 矩阵计算器——大一c++大作业回顾
  6. [Python图像识别] 四十五.目标检测入门普及和ImageAI“傻瓜式”对象检测案例详解 (1)
  7. Django 框架(菜鸟)教程
  8. 【学习笔记】状态机编程
  9. **MA2灯光控台的TIMECODE 说明**
  10. Ubuntu 链接ln的使用:创建和删除符号链接