某N开一点小分析

社区服务
高级搜索
猴岛论坛跑跑卡丁车某N开一点小分析
发帖 回复
倒序阅读 最近浏览的帖子最近浏览的版块
32个回复

[游戏辅助]某N开一点小分析

楼层直达
sprees

ZxID:35237591

等级: 上士
举报 只看楼主 使用道具 楼主   发表于: 2013-11-29 0
PP N开原理简单剖析哦, 只逆了小部分,上班再弄.
(功能的找法定位在搜索和遍历.另外关于车辆信息和人物信息的指针结构已经移入堆栈.目前不可修改,可以通过其它手段获得 但不固定)


屏蔽邀请部分:
*[结构地址+0x14]  == 某变量地址
*[结构地址+0x14] - 0xc ==某前面的变量地址
++*[*[结构地址+ 0x14] - 4]


  1. int __stdcall sub_10001030(int argContext)
  2. {
  3.   int result; // eax@1
  4.   result = HeapStart;
  5.   if ( HeapStart )
  6.   {
  7.     result = phHeap;
  8.     if ( phHeap )
  9.     {
  10.       if ( argContext )
  11.       {
  12.         **(argContext + 0x14) = 49;
  13.         *(*(argContext + 0x14) - 0xC) = 1;
  14.         result = isEnable;
  15.         if ( !isEnable )
  16.         {
  17.           ++*(*(argContext + 0x14) - 4);        // 某二级结构变量值自加
  18.           *HeapStart = HeapAlloc(*phHeap, 0, 4u);
  19.           *(HeapStart + 4) = *HeapStart + 4;    // 保存自身地址
  20.           *(HeapStart + 8) = *(HeapStart + 4);
  21.           result = *HeapStart;
  22.           **HeapStart = *(argContext + 0x14);
  23.           isEnable = 1;
  24.         }
  25.       }
  26.     }
  27. 最后一段看起来没什么用,有点像AheadLib对Tls的处理..

        dword_10008E64 = *(*(Section1_Vaddr + 0xB) + Section1_Vaddr + 0x17);
        dword_10008E64 += *(*(Section1_Vaddr + 18) + Section1_Vaddr + 33);
这两句一直看不懂, 因为Section1_Vaddr已经指向了themida加壳后的第一个节区,不知道0x17 33两处代表什么意思.



argContext在Hook点自行获取, -- > ecx (为何要用这样的方法呢,因为ECX的指针不固定,第二点可以不用更新.那么为什么人物指针等不用这个方法呢?因为人物指针所经过的call们都是全局共享的.)

LABEL_55:
        if ( dword_10008E5C )
        {
          BeginOfData = (KartRider(00400000) + baseOfData);
          EndOfdata = (KartRider(00400000) + baseOfData + SizeOfInitializedData - 16);
          if ( (KartRider(00400000) + baseOfData) < EndOfdata )
          {
            while ( 1 )
            {
              count = 4;
              pKeyStr = "PqInviteRider";        // 游戏内的DbgPrint输出字符串当#define DEBUG_打开时调用
              TempAddress = BeginOfData;
              IfFound = 1;
              do
              {
                if ( !count )
                  break;
                IfFound = *TempAddress == *pKeyStr;
                TempAddress += 4;
                pKeyStr += 4;
                --count;
              }
              while ( IfFound );
              if ( IfFound )
                break;
              ++BeginOfData;
              if ( BeginOfData >= EndOfdata )
                goto LABEL_65;
            }
            originalCallAddr = *(BeginOfData + 0x20);
            *(BeginOfData + 0x20) = FilterStubFunction;
          }
        }
      }
    }

FilterStubFunction proc near
pop     retAddress
mov     argContext, ecx
lea     eax, newRet__
push    eax
mov     eax, originalCallAddr
jmp     eax
:
pop dword [OriginalRetAddress]
mov argContext,ecx 保存参数指针
lea eax, newRet__ 压入新的返回地址
push eax
mov eax,originalCallAddr
jmp eax --使用原参数调用原始的CALL,一个原本只执行一次的初始化call

返回到这里:
newRet__:
push    argContext 压入之前的参数(已被ORGCALL初始化)
call    sub_10001030 处理已被初始化的结构。
jmp  [ OriginalRetAddress ]
[ 此帖被sprees在2013-11-29 17:07重新编辑 ]
本帖de评分: 4 条评分 DB +4
DB+1 2013-11-30

一直都在给你的大号发信息.不知道你换号了.也不知道留言看见了没有.

DB+1 2013-11-29

。。。。

DB+1 2013-11-29

欢迎分析啊,没加壳很简单的

DB+1 2013-11-29

什么玩意啊 看不懂

sprees

ZxID:35237591

等级: 上士
举报 只看该作者 沙发   发表于: 2013-11-29 0
话说以前遇到了好多调试输出字符串,好舒服.
sprees

ZxID:35237591

等级: 上士
举报 只看该作者 板凳   发表于: 2013-11-29 0
时间花在前面这部分了,后来找了下脸蛋N开的源码,居然发现源码中没有这些代码.
  int v50; // edi@67
  int v51; // esi@67
  int v52; // eax@75
  int v53; // edx@75
  char v54; // zf@76
  signed int v55; // ecx@76
  int v56; // edi@76
  int v57; // esi@76
  HMODULE localhModule; // [sp+10h] [bp-14h]@1
  int baseOfData; // [sp+14h] [bp-10h]@3
  int SizeOfInitializedData; // [sp+18h] [bp-Ch]@4
  int v61; // [sp+1Ch] [bp-8h]@5
  int v_SectionTable; // [sp+20h] [bp-4h]@5

  hModule = GetModuleHandleA(0);
  localhModule = hModule;
  if ( *hModule == 0x5A4D                       // MZ-DOS 15==3c
    && (Nt_Head = (hModule + *(hModule + 15)), *Nt_Head == 0x4550)
    && (baseOfData = *(Nt_Head + 0x30), *(Nt_Head + 0x30))
    && (SizeOfInitializedData = *(Nt_Head + 0x20), *(Nt_Head + 0x20))// SizeOfInitializedData
    && (SizeOfOptionalHeader = *(Nt_Head + 0x14),
        v6 = *(SizeOfOptionalHeader + Nt_Head + 0x24),
        SectionsTable = SizeOfOptionalHeader    // 跳过可选头
                      + Nt_Head
                      + 0x18,
        v8 = hModule,
        v_SectionTable = SectionsTable,
        v9 = *(SectionsTable + 8),
        v3 = (v8 + v6),
青岛城乡设计院

ZxID:28370095

等级: 大将
一些事,只能当回忆。一些人,只配做过客。 既不回头,何必不忘。既然无缘,何必誓言。

举报 只看该作者 地板   发表于: 2013-11-29 0
什么意思?想表达什么呢
萌芽Miya

ZxID:28526861

等级: 上将
NewShow黑马c  揭发各种骗术手段  欢迎骗子前来挑战

举报 只看该作者 4楼  发表于: 2013-11-29 0
看不懂
Ethereal丶voice

ZxID:23632520

等级: 中尉
   ✖跑跑卡丁车✖    ❤有你曾珍贵❤   跑跑版块欢迎你

举报 只看该作者 5楼  发表于: 2013-11-29 0
其实你想表达什么?
海宁1394

ZxID:25579262

等级: 上将
举报 只看该作者 6楼  发表于: 2013-11-29 0
看不懂。
哇咔咔。
Jayman

ZxID:30990077

等级: 少尉

举报 只看该作者 7楼  发表于: 2013-11-29 0
表示不懂!!

际遇之神

奖励

Jayman在大街上捡到3DB  飞快的跑回家躲着.

清空梦

ZxID:20112075

等级: 元老
配偶: 清空心
 ◕热会四队◕        ◕四队队长◕

举报 只看该作者 8楼  发表于: 2013-11-29 0
直接不明白
diguo117

ZxID:35236879

等级: 准尉
举报 只看该作者 9楼  发表于: 2013-11-29 0
不懂
欧阳幻息

ZxID:27833779

等级: 上将

举报 只看该作者 10楼  发表于: 2013-11-29 0
...是个人用工具都会...发这贴有什么意思?

际遇之神

惩罚

只看帖不回帖,被楼主用板砖拍趴下了,缝两针用了DB3

sprees

ZxID:35237591

等级: 上士
举报 只看该作者 11楼  发表于: 2013-11-29 0
回 10楼(欧阳幻息) 的帖子
法海不懂爱诶
Dark′men

ZxID:24568688

等级: 上将
好累啊 感觉不会再撸了~~~~鲜草萝卜再草芯。

举报 只看该作者 12楼  发表于: 2013-11-29 0
什么玩意啊 看不懂
woailaomuji

ZxID:26711113

等级: 上尉
我是猴岛水专家,我为自己代言

举报 只看该作者 13楼  发表于: 2013-11-29 0
其实你想表达什么?
我是猴岛水专家,我为自己代言
极品老C

ZxID:17173743

等级: 少校
吃飯  睡覺  玩跑跑 上猴島

举报 只看该作者 14楼  发表于: 2013-11-29 0
  
  不明觉历

哞哞0438

ZxID:26832147

等级: 少尉
举报 只看该作者 15楼  发表于: 2013-11-29 0
一队字母符号看不懂

际遇之神

奖励

版主上厕所忘带手纸,哞哞0438高价转让手纸,得5DB

熙熙儿

ZxID:27329931

等级: 大将
╔━━━━━━━━╗┃爱猴岛、爱跑跑っ┃╚━━━━━━━━╝

举报 只看该作者 16楼  发表于: 2013-11-29 0
不懂
_Lacorey丶

ZxID:25284962

等级: 大尉
纯娱乐
举报 只看该作者 17楼  发表于: 2013-11-29 0
求解有什么问题
- -
尕丶鑫

ZxID:26667095

等级: 禁止发言
举报 只看该作者 18楼  发表于: 2013-11-29 0
直接说   表达什么    没有的你认为是?
尕丶鑫

ZxID:26667095

等级: 禁止发言
举报 只看该作者 19楼  发表于: 2013-11-29 0
过来看一看 给他说一下  
教育一下小猴子
本帖提到的人: @清静梵音
本帖de评分: 2 条评分 DB +2
DB+1 2013-11-30

P神教育小枫,呃。。。。这里好像是小枫指出P神的不足吧。。

DB+1 2013-11-30

机智的版主居然不认识小枫,还AT大神来教育。

« 返回列表
发帖 回复