【HR】Android Studio动态调试smali

编程开发   © 文章版权由 admin 解释,禁止匿名转载

#楼主# 2022-10-19

环境 :
1.雷电模拟器  (安卓模拟器)
2.android studio  (安卓开发工具)
3.smalidea 插件  (as的smail插件)
4.android killer   (反编译工具)
5.zhuce.apk (测试apk)

1.  手机(类型模拟器)

# adb shell am start -D -n 包名/活动页面
adb shell am start -D -n com.qianyu.zhuceji/com.qianyu.zhuceji.MainActivity

端口转发:

# 进入 手机
adb shell
# 查看 apk 的进程 ps | grep 包名包含关键字
ps | grep qian
# 端口 转发 adb forward tcp:电脑端口 jdwp:手机端口
adb forward tcp:8700 jdwp:2933

使用这两个命令即可连接成功。
要注意此处可能会发生8700端口被占用的情况,需要 找到结束,重新转发
1.netstat -aon | findstr \"8700\"
2.根据PID找到该进程,结束进程
3.打开任务管理器—>查看—>选项列(S)—>勾选 PID,确定—>进程按钮栏
2.  AS动态调试
加载 smailidea 插件(File --> Plugins ---> installed ---> install plugins for disk (第三个))
 加载插件成功,
1. 文件前面会显示 S 
2. 代码快会高亮显示
3. 代码行数 可以选择打断点 

打上 断点分析,运行,会提醒你需要配置
运行配置:
运行后会提示:Connected to the target VM, address: 'localhost:8700', transport: 'socket'\n\n证明配置成功,然后可以在 apk 操作,来调试到 断点位置
简单补充分析逻辑:
首先使用 jadx 反编译 apk 文件,找到 主活动界面,\n\n注册按钮 - 肯定绑定了 监听事件,这是一个突破口,就从这里入手 
打好断点,app应用里在操作, 触发 断点位置,查看变量 
 找到 切入点,checkSN 方法,然后在到 smali 文件里面找到这个方法,并打上 断点,
再 按照 前面的 以调试模式 启动,app 应用 

一步步 调试,smali 不熟,可以对比 jadx 反编译的 java代码 来查看 

可以 调试 到最后 有个输入的 注册码 和 系统自带的 注册码 判断是否相等
最后可以 看到 系统的注册码 ,就是我们需要的,

最后 注册的时候 输入 正确的激活码,则提示 注册成功

最后,由于图片有限,只能上这么多图片,希望学习Android逆向的朋友,可以体谅一下,可以结合代码来先看看,最好是可以学会断点,这样就非常的好理解了

沙发
HR黑魅এ 2022-10-19
恭喜你加入HR团队!
板凳
HR乌鸡哥 2022-10-19
谢谢[吐舌]
地板
玖月๑ 2022-10-24
奖励结算,当前结算等级:1;少侠辛苦了。
4楼
毁灭 2022-11-16
牛逼,这个贴居然没人?

评论

登录后才可发表内容
  • 主题

    4

  • 帖子

    8

  • 关注者

    0

Copyright © 2019 凯特网.   Powered by HYBBS 2.3.4  

Runtime:0.0952s Mem:2100Kb