吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 761|回复: 6

[安卓逆向图文] 【原创】安卓逆向实例 - 表情包输入法【VIP + 免登录】

[复制链接]
泄密无花 发表于 2023-4-17 16:45 | 显示全部楼层 |阅读模式

本帖最后由 泄密无花 于 2023-4-17 16:47 编辑

0x00 前言


frida真的很方便

0x01 准备工作

1、表情包输入法_1.1.6
下载地址:https://www.wandoujia.com/apps/8282522
2、脱壳说明
App是腾讯御安全加固,需要脱壳修复
fakename.png
已脱壳处理过的Apk:https://t.wss.ink/f/azoth36wb0f(链接有效期23小时)
脱壳步骤简述:
1)DumpDex
环境:雷电模拟器Android 9、frida 16.0.11(Python 3.9+)、frida-dexdump
命令:frida-dexdump -U -f com.maoying.keyboard --sleep 3 -d -o (保存dex的文件路径)
2)修复
参考帖子:https://www.52hb.com/thread-57970-1-1.html

0x02 逆向分析
1、免登录
1)过滤字符串“登录”
fakename.png
2)找到d()为判断的逻辑,跳转进d()
fakename.png
3)d() Smail转Java
修改之前:
fakename.png
猜测箭头所指的是用户名,keyname参数也是
fakename.png
修改三处
第一处:
fakename.png
第二处:
fakename.png
第三处:
fakename.png
修改之后的Java代码:
fakename.png
4)修改效果
fakename.png
2、逆向VIP
1)过滤会员字符串
fakename.png
2)搜索终身会员,结果随便选,跳转到cond_5d判断
fakename.png
转Java代码
fakename.png
3)跳转进i()
fakename.png
4)i()转Java代码
[Java] 纯文本查看 复制代码
public static int i(Context context) {
        return context.getSharedPreferences(a, 0).getInt("vip", 0);
    }

结合cond_5d的判断得出:3为月度会员、2为终身会员
直接Smail修改为3即可
fakename.png

0x03 HOOK
1、Hook会员等级
代码:
[Python] 纯文本查看 复制代码
Java.perform(function() {
  // 目标类和方法的名称
  const targetClass = "f.f.a.a.j.a";
  const targetMethod = "i";

  // 获取目标类对象
  const clazz = Java.use(targetClass);

  // 获取目标方法对象
  const targetMethodObj = clazz[targetMethod];

  // Hook 方法并输出日志和修改返回值
  targetMethodObj.overload('android.content.Context').implementation = function(context) {
    console.log("Hooked method " + targetClass + "." + targetMethod);

    // 在调用该方法之前保存一个指向当前对象的引用
    var thisObj = this;

    console.log("原始值: " + targetMethodObj.call(thisObj, context));

    // 修改返回值为 1
    var modified_return_value = 1;

    // 输出修改后的返回值
    console.log("修改值: " + modified_return_value);

    return modified_return_value;
  };
});

原理:
1)这段代码实现了一个静态方法 i(),它接受一个 Context 对象作为参数,并使用这个对象的 getSharedPreferences() 方法获取一个名为 a 的 SharedPreferences 对象,然后调用这个对象的 getInt() 方法,读取名为 "vip" 的键对应的值。如果不存在 "vip" 这个键,则返回默认值 0。
2)要Hook这个方法,我们需要先找到目标类的名称和方法名称。在这里,我们知道目标类的名称为 f.f.a.a.j.a,方法名称为 i。我们可以使用 Frida 提供的 Java.use() 函数获取这个类的引用,并使用它来获取目标方法的引用。
3)现在我们已经成功获取了目标方法的引用,接下来就是 Hook 目标方法。我们使用 targetMethodObj.overload('android.content.Context').implementation 来 Hook 这个方法,并将其重定向到一个回调函数中。
4)在回调函数中,我们首先输出一些日志信息,并保存当前对象的引用。然后我们使用调试器执行原始的方法调用,同时保存其返回值。
5)随后我们修改返回值为 1,并输出修改后的返回值。最后我们返回修改后的返回值,并注意要恢复寄存器的值以确保方法的正常运行。
6)这样,当目标应用程序调用 f.f.a.a.j.a.i() 方法时,我们的 Hook 将会拦截到这个调用并将其返回值修改为 1。

2、Hook结果
年度会员为1:
fakename.png
永久会有为2:
fakename.png
月度会员为3:
fakename.png
居然还隐藏了一个年度会员

0x04 总结
frida的脚本修改是立即生效的,不需要重启,大大方便了调试

评分

参与人数 11威望 +1 HB +32 THX +6 收起 理由
消逝的过去 + 1
花盗睡鼠 + 2 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
虚心学习 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
attackmyth + 2 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
PDWORD + 1
bnjzzheng + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
24567 + 1
zxjzzh + 2 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
Jawon + 2
美好映像 + 2 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
Shark恒 + 1 + 20 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
美好映像 发表于 2023-4-18 11:14 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
游侠啊 发表于 2023-4-19 14:57 | 显示全部楼层

666 学些了
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
bnjzzheng 发表于 2023-4-28 14:14 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
PDWORD 发表于 2023-5-24 01:39 | 显示全部楼层

感谢分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
attackmyth 发表于 2023-5-24 16:53 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
attackmyth 发表于 2023-5-24 17:28 | 显示全部楼层

继续学习
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

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