TC官方合作论坛

 找回密码
 立即注册

[源码]扫雷内存call分析过程+tc源码

查看数: 293 | 评论数: 3 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-4-18 23:08

正文摘要:

[ 本帖最后由 minews 于 2018-4-18 23:24 编辑 ]\n\nXP版扫雷 内存call分析过程和TC源代码第一次发帖排版有点乱,将就着看 这个排版真是醉了 文档直接放word文档里面了 [hide]分析雷的数据的思路1.开局的时候初始化雷 ...

回复

爱上老公 发表于 2018-4-26 09:59:06
这个是win 7版的
变量 线程ID
变量 冬去春来 = com("dm.dmsoft")
功能 执行()
    变量 游戏句柄 = 窗口查找("扫雷")
    变量 入口地址 = 冬去春来.FindData(游戏句柄, "00000000-7fffffff", "E8 B5 05 00 00 E9 4D FD FF FF")
    变量 左键点击 = "00" & 字符串格式化("%x", 转整型(入口地址, 1) - 52343)
    变量 右键点击 = "00" & 字符串格式化("%x", 转整型(入口地址, 1) - 57833)
    变量 游戏基址 = "00" & 字符串格式化("%x", 转整型(入口地址, 1) + 362533)//游戏每次启动基址会变化,这里用的入口地址定位
    变量 游戏行数 = 冬去春来.ReadInt(游戏句柄, "[[" & 游戏基址 & "]+10]+8", 0)
    变量 游戏列数 = 冬去春来.ReadInt(游戏句柄, "[[" & 游戏基址 & "]+10]+c", 0)//判断游戏行列数
    遍历(变量 i = 0; i < 游戏列数; i++)
        等待(10)
        遍历(变量 j = 0; j < 游戏行数; j++)
            等待(10)
            变量 列数下标 = 字符串格式化("%x", 4 * i)
            变量 行数下标 = 字符串格式化("%x", 4 * j)
            变量 列数下标1 = "0x" & 字符串格式化("%x", i)
            变量 行数下标1 = "0x" & 字符串格式化("%x", j)
            变量 是否点开 = 冬去春来.ReadInt(游戏句柄, "[[[[[[[" & 游戏基址 & "]+c]+24]+40]+c]+" & 列数下标 & "]+c]+" & 行数下标 & "", 0)
            如果(是否点开 == 9)//9未翻开10问号11旗子
                变量 是否有雷 = 冬去春来.ReadInt(游戏句柄, "[[[[[[" & 游戏基址 & "]+10]+44]+c]+" & 列数下标 & "]+c]+" & 行数下标1 & "", 2)
                如果(是否有雷 == 1)//1有雷,0没雷
                    冬去春来.AsmClear()
                    冬去春来.AsmAdd("push " & 行数下标1 & "")
                    冬去春来.AsmAdd("mov eax,[" & 游戏基址 & "]")
                    冬去春来.AsmAdd("mov ecx,[eax+0c]")
                    冬去春来.AsmAdd("mov esi,ecx")
                    冬去春来.AsmAdd("push " & 列数下标1 & "")
                    冬去春来.AsmAdd("mov ecx,[esi+24]")
                    冬去春来.AsmAdd("mov eax," & 右键点击 & "")
                    冬去春来.AsmAdd("call eax")
                    冬去春来.AsmCall(游戏句柄, 1)
                否则
                    冬去春来.AsmClear()
                    冬去春来.AsmAdd("push " & 行数下标1 & "")
                    冬去春来.AsmAdd("mov eax,[" & 游戏基址 & "]")
                    冬去春来.AsmAdd("mov ecx,[eax+0c]")
                    冬去春来.AsmAdd("mov edi,ecx")
                    冬去春来.AsmAdd("push " & 列数下标1 & "")
                    冬去春来.AsmAdd("mov ecx,[" & 游戏基址 & "]")
                    冬去春来.AsmAdd("mov eax," & 左键点击 & "")
                    冬去春来.AsmAdd("call eax")
                    冬去春来.AsmCall(游戏句柄, 1)
                结束
            结束
        结束
    结束
结束
功能 启动_热键()
    线程ID = 线程开启("执行", "")
结束
功能 终止_热键()
    线程关闭(线程ID)
结束
功能 win7扫雷_初始化()
    注册插件("rc:dm.dll", 真)
结束
爱上老公 发表于 2018-4-26 09:55:45
01003860    A1 18510001     mov     eax, dword ptr [1005118]
01003865    8B0D 1C510001   mov     ecx, dword ptr [100511C]
0100386B    841D 00500001   test    byte ptr [1005000], bl
01003871    5B              pop     ebx
01003872    75 10           jnz     short 01003884
01003874    6A FE           push    -2
01003876    59              pop     ecx
01003877    8BC1            mov     eax, ecx
01003879    890D 1C510001   mov     dword ptr [100511C], ecx
0100387F    A3 18510001     mov     dword ptr [1005118], eax
01003884    833D 44510001 0>cmp     dword ptr [1005144], 0
0100388B    74 09           je      short 01003896
0100388D    51              push    ecx
0100388E    50              push    eax
0100388F    E8 23FDFFFF     call    010035B7
01003894    EB 20           jmp     short 010038B6
01003896    8BD1            mov     edx, ecx
01003898    C1E2 05         shl     edx, 5
0100389B    8A9402 40530001 mov     dl, byte ptr [edx+eax+1005340]
010038A2    F6C2 40         test    dl, 40
010038A5    75 0F           jnz     short 010038B6
010038A7    80E2 1F         and     dl, 1F
010038AA    80FA 0E         cmp     dl, 0E
010038AD    74 07           je      short 010038B6
010038AF    51              push    ecx                              ; 行数
010038B0    50              push    eax                              ; 列数
010038B1    E8 5CFCFFFF     call    01003512  //左键点击call


01002174    8B45 14         mov     eax, dword ptr [ebp+14]
01002177    C1E8 10         shr     eax, 10
0100217A    83E8 27         sub     eax, 27
0100217D    C1F8 04         sar     eax, 4
01002180    50              push    eax                              ; 右键点击行数
01002181    0FB745 14       movzx   eax, word ptr [ebp+14]
01002185    83C0 04         add     eax, 4
01002188    C1F8 04         sar     eax, 4
0100218B    50              push    eax                              ; 右键点击列数
0100218C    E8 BE150000     call    0100374F

爱上老公 发表于 2018-4-26 09:51:46
XP版的太简单了
关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-9-17 10:15 , Processed in 0.121379 second(s), 28 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

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