【愚公系列】2023年08月 攻防世界-MOBILE(Phishing is not a crime-2)
【摘要】 前言下面介绍三个反编译工具jadx是一个用于反编译Android APK文件的开源工具,静态反编译,查找索引功能强大jeb和IDA很像,属于动态调试,可以看java汇编也可以生成伪代码,还可以动态attach到目标调试Dex2jar:Dex2jar是一种工具,可以将Android的.dex文件转换为Java的.class文件,以便更方便地进行反编译和分析。对于so文件的逆向工具选择IDA逆...
前言
下面介绍三个反编译工具
- jadx是一个用于反编译Android APK文件的开源工具,静态反编译,查找索引功能强大
- jeb和IDA很像,属于动态调试,可以看java汇编也可以生成伪代码,还可以动态attach到目标调试
- Dex2jar:Dex2jar是一种工具,可以将Android的.dex文件转换为Java的.class文件,以便更方便地进行反编译和分析。
对于so文件的逆向工具选择
- IDA逆向工具是一款反汇编器,被广泛应用于软件逆向工程领域,能够反汇编各种不同平台的二进制程序代码,并还原成可读的汇编代码。
Objection是一款移动设备运行时漏洞利用工具,该工具由Frida驱动,可以帮助研究人员访问移动端应用程序,并在无需越狱或root操作的情况下对移动端应用程序的安全进行评估检查。
安装命令
pip3 install objection
frida是一款便携的、自由的、支持全平台的hook框架,可以通过编写JavaScript、Python代码来和frida_server端进行交互
frida的安装可以参考:https://www.jianshu.com/p/60cfd3f6afde
一、Phishing is not a crime-2
1.题目
2.答题
1、Dex2jar是一种工具,可以将Android的.dex文件转换为Java的.class文件,以便更方便地进行反编译和分析。
d2j-dex2jar.bat classes.dex
2、我们可以看到函数getSignatureString(byte[]),它由本机库实现。实现getSignatureString的so函数实在 (/lib/armeabi-v7a/libstrings.so):
3、Signature密钥查找
签名算法 (HMACSHA256) 的密钥通过方法 Scrambler::getstring() 获取。反编译此方法会显示密钥是动态生成的:
4、Fook函数
import frida
import sys
session = frida.get_usb_device(1000000).attach("com.instagram.android")
script = session.create_script("""
fscrambler = Module.findExportByName(null,"_ZN9Scrambler9getStringESs");
Interceptor.attach(ptr(fscrambler), {
onLeave: function (retval) {
send("key: " + Memory.readCString(retval));
}
});
""")
def on_message(message, data):
print(message)
script.on('message', on_message)
script.load()
sys.stdin.read()
执行
$ adb shell
shell@mako:/ $ su
root@mako:/ # /data/local/tmp/frida-server &
[1] 3354
root@mako:/ # exit
shell@mako:/ $ exit
$ python hook.py
{u'type': u'send', u'payload': u'key: 4d53d9e2da15fd018e591939cd9689a8e7bbed50841fcb35b976ce63461cb834'}
得到flag:4d53d9e2da15fd018e591939cd9689a8e7bbed50841fcb35b976ce63461cb834
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)