发新帖

【转载】八门神器gameKiller和游戏金手指gamecih简单原理分析

[复制链接]
18245 12
这两个工具都是通过修改进程内存的方式来实现的。
简单点说就是调试进程。java 写的界面调用native c 写调试程序。
这里简单抛块转。程序运行需要获取ROOT权限的方法网上很多,可以搜索一下。


通过
        activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
        procList = activityManager.getRunningAppProcesses();
得到当前运行的应用PID。

通过分析/proc/[pid]/maps文件,得到下面的地址(一般内存分配都在这里进行)
开始        - 结束         可读写  
4267f000-42864000 rw-p 00001000 00:04 760        /dev/ashmem/dalvik-LinearAlloc(deleted)

Runtime.getRuntime().exec(“tt”);
运行TT程序(tt需要参数)。

通过tt程序获取内存内容(snapshot),保存成文件。分析文件就比较简单了。找到所有符合你搜索的数据,将地址保存建表。
然后回到游戏,等待数据变化后重复上面的过程,通过保存的上次的地址,进行进一步搜索,直到确认正确地址后,修改这个地址内容即可。
tt程序需要ROOT权限运行
tt程序用ndk编译
Android.mk 编译脚本
==================================================
LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_SRC_FILES:= \
main.c

LOCAL_LDLIBS :=

LOCAL_MODULE:= tt

include $(BUILD_EXECUTABLE)

include $(call all-makefiles-under,$(LOCAL_PATH))

附tt的源代码:
mian.c
[C] 纯文本查看 复制代码
#include <asm/page.h>
#include <sys/mman.h>
#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
#include <sys/ptrace.h>
#include <errno.h>
#include <stdlib.h>

#define TRACE(o,p) printf(o,p)

void change_process_mem(int pid ,long offset,long value)
{

    ptrace(PTRACE_ATTACH, pid, NULL, NULL);
    waitpid(pid, NULL, 0);
    
    ptrace(PTRACE_POKEDATA, pid,(void *)offset, (void *)value);

    ptrace(PTRACE_DETACH, pid, NULL, NULL);
    waitpid(pid, NULL, 0);

    
}

void process_mem_snapshot(int pid,long offset,long size,char* memfilename)
{
    long i=0;
    FILE* out;
    ptrace(PTRACE_ATTACH, pid, NULL, NULL);
    waitpid(pid, NULL, 0);
    out = fopen(memfilename,"wb+");

    for(i=offset;i<offset+size;i+=4)
    {
        long r = ptrace(PTRACE_PEEKDATA, pid,(void *)i, NULL);
        fwrite((char*)&r,4,1,out);
    }

    fclose(out);
    
    ptrace(PTRACE_DETACH, pid, NULL, NULL);
    waitpid(pid, NULL, 0);
}

int printf_help(int argc, char *argv[])
{


    if ((argc<5)||(argv[1][0]=='s'&&argv[1][1]==0&&argc<6))
    {
        printf("\r\n\r\n"
            "Usage:\ttt <sm> pid offset size <FILE>\r\n\r\n"
            "\ttt s 1000 10000 1222 \"/sdcard/temp\"\r\n"
            "\ttt m 1000 20000 1234\r\n");

        return 0;
    }
    return 1;
}


int main_s(int argc, char *argv[])
{
    int pid;
    long offset;
    long size;
    char* memfilename;

    pid = atoi(argv[2]);
    offset = atol(argv[3]);
    size = atol(argv[4]);
    memfilename = argv[5];
    process_mem_snapshot(pid,offset, size,memfilename);
    
    return 0;
}

int main_m(int argc, char *argv[])
{
    int pid;
    long offset;
    long value;
    
    pid = atoi(argv[2]);
    offset = atol(argv[3]);
    value = atol(argv[4]);
    change_process_mem(pid , offset, value);
    return 0;
}

void main(int argc, char *argv[])
{  
    int pid = 0;
  
    if (!printf_help(argc,argv))
    {
        return;
    }

    
    if (argv[1][0]=='s'&&argv[1][1]==0)
    {
         main_s(argc,argv);
         return;
    }


    if (argv[1][0]=='m'&&argv[1][1]==0)
    {
         main_m(argc,argv);
        return;
    }
    
    return ;
} 


原帖地址:http://hi.baidu.com/1000in1/item/7c27992427b494949c63d153

整理文档,收藏夹留存的,一定是@peterdocter 皮特哥给的地址,删除收藏夹 移动论坛了





已有1人评分 NB 荣获致谢 理由
XcY + 1 + 1 很给力!

查看全部评分 总评分: NB +1  荣获致谢 +1 

举报 使用道具

回复

精彩评论12

beijingshi1    发表于 2015-2-10 11:28:11 | 显示全部楼层
一直很好奇。。。

举报 使用道具

回复 支持 反对
sndncel    发表于 2015-2-13 08:33:09 | 显示全部楼层
谢谢分享。。。。。我看到有人用易语言也写过这软件呀。。。。。看来只要有思路,还是可以自己编写的呀。哈哈。

举报 使用道具

回复 支持 反对
5Up4Shit    发表于 2015-2-13 23:02:23 来自手机  | 显示全部楼层
为什么回复这个帖子的人那么少呢?

举报 使用道具

回复 支持 反对
yuzhe    发表于 2015-3-20 21:10:31 | 显示全部楼层
QQ也可以完美过掉自校验!  
另外补充一下, 如果碰到 一些破解软件 需要安装 “幸运破解器” 使用 核心功能破解签名的 软件应该都可使用此方法,
而不在需要安装破解器可直接,  但是过不了系统的 签名校验, 所以不能覆盖安装!!!

举报 使用道具

回复 支持 反对
善良的恶魔    发表于 2015-4-3 22:10:34 | 显示全部楼层
不错的帖子,学习啦。。。

举报 使用道具

回复 支持 反对
B6B6B6    发表于 2015-6-17 19:57:55 来自手机  | 显示全部楼层
学习了!!!

举报 使用道具

回复
沐小悠    发表于 2015-7-27 16:40:44 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

举报 使用道具

回复 支持 反对
抬头望未来    发表于 2015-7-29 11:14:08 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

举报 使用道具

回复 支持 反对
不仅丑还保守    发表于 2015-7-29 11:22:53 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

举报 使用道具

回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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