kessadmn 发表于 2015-2-6 00:11:19

最新的蜀门分析

最新的蜀门分析

一:解决调试器的问题,od附加是可以,但是是不能下断的,一下断就退出
a,方法一,用strod带参起动游戏就可以下断,可以将就着用,有时还是会退出
b,方法二,脱壳,是TMD的壳,输入表只让替换了一个,换回来就行,脱壳并不难,自已可以找一下脱壳教程,下面主要说一下脱壳后的处理
            脱壳后要处理的地方有七处
            1.pe.data部分权限,只要找到相应位置jmp就能运行
             2.还有6处较难找,在一个大的算法中,不懂的是不是叫crc校验,原理是这样的,通过无数次的校验,最终得出一个EFL寄存器的值,来决定正常运行还是退出,找到相应位置,jmp就行
                总共有6处,其中一处要用内联hook,不能单纯的jmp,不然会出现密码不对,无法进入游戏
                上面的这些处理我是写在一个dll里,用输入表注入,这样游戏一起动就自动hook成功了,就不存在hook时机的问题
                上面的找法有点烦,自已去慢慢找,并不是太难,分析过程就不贴了,太长,
总结:经过方法二处理的客户端,所有od与ce都是合法的,任务断点都可以下,包括bp send, 这样就完成了准备工作,
下面分析call之类与其它游戏是一样的,给出一些
1.寻径call 0x0041902E; 鼠标走路也用这个,能寻径的他就寻径,不能寻的就当鼠标走路,测试结果是这样的
这个调用不长,就给出调用例子

//寻径
void findGo(int x,int y)
{
    int xx=x*20,yy=y*20;
    float fx=(float)xx,fy=(float)yy;
    _asm
    {
      pushad
      push fy
      push fx
      mov ecx,g_ecx_base
      mov ecx,dword ptr ds:
      call g_autoGo_call
      popad
    }
}

2.使用物品call 0444DE6
3 .选怪call 0x1735BDC
4..发技能call 18B5A08
5.激活npc与地面物品call 01018910   这2个call是一样的,只是参数不同
6.控件call,这个call只要根据控件地址得出就行,给个调用例子

//按ASM纽函数
void btnAsmFun(ULONG btnAddr)
{
   
    if(btnAddr==0) return;
    byte by={0};
    ULONG u=6;
    memcpy((ULONG*)by,&u,4);
    u=1;memcpy((ULONG*)((ULONG)by+4),&u,4);
    ULONG hecx=btnAddr;
    _asm
    {
      pushfd
      pushad
      mov ecx,hecx
      mov eax,dword ptr ds:
      mov eax,dword ptr ds:
      mov edx,6
      mov dword ptr ds:,edx
      lea edx,by
      push edx
      mov esi,g_win_base
      call eax
      mov edx,1
      mov ecx,hecx
      mov dword ptr ds:,edx
      popad
      popfd

    }
7.全部拾取call.只要用上面的控件函数就行,id拾取从bpsend 返回6级左右,也不是很难,就是id拾取还要去遍历物品id有点长就行,这个我也有写出来,就不贴了,用控件call就好

///////////////////////////////////////////////下面说一下数据分析/////////////////////////////////////////////////////////////////
一 背包遍历,这个不难,有点特点的就是物品的数量没法直接得出
    得出物品数量的方法是找到layWorld窗口地址,根据layWorld窗口地址找出layWorld.frmItemEx地址,根据layWorld.frmItemEx地址得出各背包layWorld.frmItemEx.wtBag的地地址,
    再根据各背包的地址得出相对应的btItem0-29 的数量文本地址,用atoi就换成数字了
    看着很复杂,其实也不难, 控件反正都是要遍历出来的,这游戏的控件遍历相对其它游戏来说容易的很
二.怪物遍历,是老掉牙的二叉遍历,给出一些关键偏移吧
+740byte型 1为可打,0为不可打
+414   ULONG型 0为没死,其它值为已死
+484 ULONG型 0 没东西掉,其它值有掉可挖物品
+128 ULONG型,怪物共有属性地址
+370与374 是坐标,
距离要自已算,好像找不出
三,技能遍历,这个容易的很,就是一个双向链表遍历,只是他的数据区本身是一个结构就是,直接遍历出来+上偏移就ok

主要的就这些,打字打的好累,其它的自已找去,这是今天最新版的

aqw729 发表于 2016-10-8 18:16:59


谢谢分享,好贴!
页: [1]
查看完整版本: 最新的蜀门分析