一道Android题目逆向动态调试

题目来源于海淀区网络与信息安全管理员大赛,题目中将加密验证算法打包进.so,在程序中动态调用check。

本题目通过System.loadLibrary("native-lib")加载了libnative-lib.so文件,该文件通过jeb可以实现提取

图1题目关键代码

调试环境选择与配置

mumu模拟器x64位版本,测试后发现sprintf会导致程序崩溃

夜神模拟器x64,x32的版本经过测试后,sprintf均导致程序崩溃

雷电5模拟器测试后,sprintf导致程序崩溃,动态调试libnative-lib.so时,且无法下载libart.so

最终选用mumux32位版本可以进行调试

动态调试选用IDA+MUMUx86模拟器对动态库libnative-lib.so调试

调试环境

adb的基础配置

mumu模拟器使用的adb为adb_server.exe,这里将adb_server.exe为便于使用重新命名为adb.exe,打开一个cmd终端,adb接入模拟器中

adbconnect.0.0.1:

图2adb服务端连接

通过adb将apk包安装进安卓的模拟器

adbinstalltest.apk

通过cmd再打开一个终端,通过adbshell可以直接进入到模拟器shell中

图3adbshell连接

 ①网安学习成长路径思维导图

 ②60+网安经典常用工具包

 ③+SRC漏洞分析报告

 ④+网安攻防实战技术电子书

 ⑤最权威CISSP认证考试指南+题库

 ⑥超页CTF实战技巧手册

 ⑦最新网安大厂面试题合集(含答案)

 ⑧APP客户端安全检测指南(安卓+IOS)

应用程序的配置

在新起的cmd终端,通过动态调试模式来启动app

./adbshellamstart-D-n


转载请注明:http://www.aierlanlan.com/rzgz/4202.html