zoukankan      html  css  js  c++  java
  • 安卓逆向12.IDA Pro+Cheat Engine KeyGen AliCrackMe

    用到的工具

    1.IDA7.2

    2.GDA3.72

    3.Cheat Engine 6.5

    目的:

    主要是学习下Cheat Engine工具怎么在PC端运行,调试安卓程序!

    下载链接:

    链接:https://pan.baidu.com/s/1Q_Q8ovHLXUcsRjLyCf0d0w
    提取码:u72u

    1.程序界面

    2.GDA打开程序,定位到关键验证位置,发现核心验证在so层,函数名为SecurityCheck,参数为String类型我们输入的假码

    3.提取出so文件,打开IDA,定位到验证函数

    4.F5查看伪代码,采用的是JNI静态注册,算法很简单

    5.对伪代码进行整理分析后得知,当我们输入的字符串和全局变量strRightKey相同即注册成功!

    8.转到strRightKey查看正确的Key,结果是"woshidaan"

    9.然而实际输入后提示验证码校验失败!

    10.通过IDA分析我们已经可以肯定,最终一定会和strRightKey做对比,为什么这里却不成功呢?很可能是程序在运行之后对这个字符串进行了修改,真正的key并不是这个,需要跑起来才行。
    11.本打算使用IDA附加单步调试去跟踪正确的key,结果发现有反调试!那我们换个思路,用CE去附加APK进程,然后找到字符串相对偏移,就拿到了正确key了!所以现在IDA中记录下key偏移为0x4450

    12.执行命令【adb push C:ceserver_x86 /data/local/tmp】把ce的调试服务ceserver_x86发送到模拟器/data/local/tmp目录下

    13.在adb shell中切换到/data/local/tmp目录下执行【chmod 777 ceserver_x86】,将ceserver_x86修改为777权限,然后执行【./ceserver_x86】启动ce调试服务

    14.新开CMD,执行【adb forward tcp:52736 tcp:52736】进行端口转发

    15.重新进入adb shell,执行【ps】,查询所有进程信息,找到我们要调试的进程ID为3080

    16.执行【cat /proc/3080/maps】查询进程ID为3080的进程所有模块信息,可以看到模块基址为0xC000000,根据上面得到的Key偏移0x4450,那么正确key位置应该在0xC004450

    17.打开CE,进程->网络->输入127.0.0.1端口57236

    18.选择进程并打开

    19.添加地址0xC004450,看到正确key为"aiyou,bucuoo"

    20.验证

  • 相关阅读:
    数组优化 Dijkstra 最短路
    F
    树 (p155, 从中序和后续回复二叉树)
    矩阵连乘 LRJ白书 p141 栈 解析表达式
    Train Problem II HDU 1023 卡特兰数
    codevs 1166 矩阵取数游戏
    BZOJ 2754: [SCOI2012]喵星球上的点名
    2017.6.11 校内模拟赛
    HDU 2896 病毒侵袭
    UvaLive 4670 Dominating Patterns
  • 原文地址:https://www.cnblogs.com/fuhua/p/12753115.html
Copyright © 2011-2022 走看看