吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 14203|回复: 42
收起左侧

[Android 原创] Jeb3.24动态安卓调试.smali使用 第一集 【入坑指南】

  [复制链接]
冥界3大法王 发表于 2020-9-9 07:52
本帖最后由 冥界3大法王 于 2021-6-23 17:44 编辑

Jeb3.24动态安卓调试.smali使用 第一集 【入坑指南】
                                                                  导演:冥界三大法王  
前两天研究注入输出LOG,过滤查找关键点;不过感觉方法是可行,但是还是不够直观,于是又想到何不自己也去尝试下动态调试呢,这样心中的疑惑岂不尽解?
关于Jeb动态调试的贴子,论坛能找到的多为“悬案”;故此我们还是重新开贴说一下成功的过程和入坑指南吧。


官方推荐【Java(2020年7月为8u261】https://pan.baidu.com/share/init?surl=-yDfwEdTIpRUTOpp3VtPZQ    v6f3 (这是Help中写的,不信去看)



我看上的版本【jeb3.24】:https://www.52pojie.cn/forum.php?mod=viewthread&tid=1250436&highlight=jeb

激活与注册:到上贴下载安装包和相关破解文件覆盖同名
使用在线Python网站生成激活码:https://tool.lu/coderunner我用的这个(相关Python keygen包内有,用时在线粘改licdata=“你的码子”并运行!
Java方式折腾几次报错,Python本地注册要2.7;其他版本运行报错哟~~
为了以后方便,拖个【jeb_wincon.bat】快捷方式到开始菜单
之后我们就可以玩耍了;但是为了安卓动态调试,我们还得电脑里准备个安卓模拟器;备了【夜神】
【网易】 (需要扔3个文件过去,否则不通。可以移植夜神的abd*并在系统中添设全局变量)
找个apk拖进去(当然也支持dex等)




其实无论玩啥软件第一步都是熟悉界面;这要你就知道主攻和辅攻目标在哪了?
左1红箭,项目浏览  ,项目附加区
左2红箭,底部调试输出的日志区
左3红箭,终端 交互命令区
image.png
左4红箭,空工作区



如果您的输入文件是Android应用程序,则该应用程序将由各种Android分析插件处理:
  • APK插件负责解开应用程序,解码清单和资源
  • DEX插件执行一个或多个DEX字节码文件的分析和反汇编
  • XML解析器分析XML资源
  • 证书插件分析证书
  • ... 等等
工作区可以拖拉调整位置



费话不多说,还是实战吧。看过网上的视频,当然是残本,很不全,一般付费的都要6000-8000元
折腾了一天,到晚上才幸运的找到了问题的所在,唉。。。
image.png
按上图顺序找到OnClick 按下Ctrl+B 设好断点! 备用
拖入一个处理好的ZhuCeJi.apk (其实就是CrackMe了)
前期准备:有哪些进行过处理呢,简单的说一说吧!
  • 使用了NP管理器加入了【插桩】,可以输出Log文件
  • 修改了清单文件中的 【Application中android:debuggable="true"】别忘记,有引号,修正下!
image.png
image.png
当然你也可以用一劳永逸的办法ro.debuggable=1(需刷包)
或者干脆用已经Root的手机中的xpoosed插件来开启调试
当然你也可以用下面的办法:
image.png
Jeb这个东西可是有外部运行的命令和内部的命令两种!
安卓模拟器中还要开启开发者模式(版本号18下)
usb选项开启,目标进程,选择 你的app
image.png
image.png
你每次点调试器--》开始 ,出现的提示都是不一样的。
一般会告诉你需要一个调试桥建立连接; 有时也会告诉你用androdi studio 或 sdk tools (最可恶的是这两句话,没告诉你是绝对还是。。。)
折腾一天,因为网上的教程不全,各说各的理,问了不少人,多数不知道。。或他也糊涂,明白人一时没找到,还是自己憋出来的。。。唉。。。
我用的以下命令:
①D:\Nox\bin\nox_adb.exe devices
②D:\Nox\bin\nox_adb.exe shell am start -D -n com.qianyu.zhuceji/.MainActivity    (粉的为包名,红的为主入口点Activity)
对了!对了!
还有一点非常重要!
你在系统环境变量中加入以下几行!
不然给你打脸!
按下Win+Pause
image.png
image.png
细节不明白的,看这里:https://jingyan.baidu.com/article/90808022f65fc7fd90c80f5f.html
接下来见证奇迹的时刻到了!!!
image.png
这他娘的鬼东西可终于出来了。
image.png
image.png
image.png
image.png
现在看看调试菜单上的热键吧,论坛上懂OD的不少,因此这个不陌生吧?
我们试着去按按
F6等价于 单步
当我们走到
image.png
image.png
注意看右边,你每按一下,寄存器数值就会变动一下;右面有个0  和  1
第一次用,你们有没有啥想法? 反正 我是想在第2行,手欠修改成1
image.png
另外类型也是可以改的,具体可参考下表,
image.png
或吾爱逆向合集
我们回到程序中
image.png
证明我们改对位置了,还有更多的功能和技巧需要探索和发现
然后又会发现上面的几行中,包名是不能改的,数据类型  和 数值 是可以修改的;但是数据类型需要手输,而不是下拉菜单中选择。



屏幕上有许多【过滤器】字眼的地方,说明会出现很多信息,过滤和排除无用的项很重要
随便试了一下,有点卡顿
论坛的置顶贴中版主说过,不要使用全局搜索,那样会让你发疯
我看到了Jeb中能直接显示出中文字符串来,试着能不能复制出来研究呢?
Ctrl+A
image.png
我还没有Ctrl+C呢,就出来这东西
告诉你全选会生成比较大的数据,OK后输出txt
[Asm] 纯文本查看 复制代码
0000005C if-nez v0, :82
:60
00000060 iget-object v0, p0, MainActivity$1->this$0:MainActivity
00000064 invoke-virtual MainActivity->getApplicationContext()Context, v0
0000006A move-result-object v0
0000006C const v1, 0x7F050005 # string:unsuccesseds "无效用户名或注册码"
00000072 invoke-static Toast->makeText(Context, I, I)Toast, v0, v1, v3
00000078 move-result-object v0
0000007A invoke-virtual Toast->show()V, v0

我们试一下,果然有个txt输出了,并且汉字是中文的;然后我又试了个大的多个dex的(电视家)结果就没有这么幸运了!
\u\XXXX 那种utf转码版的,哈哈,所以不要太过痴迷一种方式哟~~



热键列表问题:
对啊,不论哪款工具熟练运用你总不能没事总点菜单吧?
所以呢,还是有必要说一说的。
image.png
点击看大图吧。


插件的使用:
这东西支持扩展使用,支持外部api接口,可以用Python实现
image.png
具体看这里:
通过命令行执行 与 调试日志输出显示。


一些必须掌握的知识点:
image.png
最好是开发过几个简单的小app,比如最简单的HelloWorld,计算器程序就足够了。
你得知道入口点吧?
哪个是启动的主acivity?
image.png
包名,版本号,申请权限等。。
image.png
image.png
改名,你可以修改方法名,让你的分析更符合前后逻辑
/ 是注释
X  交叉引用
Ctrl+X 源码级交叉引用



快捷键不顺手能否被修改?
修改Java代码太过麻烦,我们还是直接AHK映射替换吧。

[Asm] 纯文本查看 复制代码
;我习惯Ollydbg中的,所以替换如下:
F8::F6     ;这是单步的中的F8
F7::^F6    ;进入方法Ctrl+F6
F4::R      ;运行到光标行
+F7::F7    ;从方法中出来F7

其他的需要时再弄,先弄个试试行不行?成了,哈哈。


我们发现貌似翻译的不彻底啊?
查看帮助是这样说的https://www.pnfsoftware.com/jeb/manual/settings/#locale
除英文外,其他10个国家支持70%
可以找Jar工具来翻译,经简单测试可行
image.png
image.png



多个dex到底能否动态调试?
经测试,是支持的,但会有些提示,无视即可。



内部命令问题:
image.png
窗口 -> 显示终端视图
help就看到了~~



两种调试模式:刚才我们见到了一种,还有一种。。。
你是否有一个疑问?
  • 刚才我们在进到了界面后,点击了按钮后触发了断下的事件
  • 如果这个app是一个先看到了广告界面(调用AD_Activity) 再进到主界面 (MainActivity)此时不就错过了嘛?
image.png
咱们说试就试来到OnCreate的地方设个断点
回到设置中的【开发者选项】,把目标程序 改为【空】
并关闭 当前app
我们再运行一次D:\Nox\bin\nox_adb.exe shell am start -D -n com.qianyu.zhuceji/.MainActivity
当然此时不用这么长了nox_adb.exe shell am start -D -n com.qianyu.zhuceji/.MainActivity 这样就行~~
回到Jeb调试器->开始->  再点一次【附加】
image.png
不必太过于纠结
image.png
说明操作的没问题,一步一步按F6单步,主要仔细观察下安卓程序的运行流程:
  • 体会方法名 的调用过程
  • 界面调用过程
  • vX ,pY 等寄存器变化;变量的类型
  • 监听事件
  • 用到了啥控件?
  • 等等吧。。。师傅领进门,勤修靠个人。。你只看图哪能感受学习到这个动态调试手感有多好呢?
image.png

免费评分

参与人数 10吾爱币 +17 热心值 +9 收起 理由
asq56747277 + 1 + 1 谢谢@Thanks!
小白在线学习 + 1 + 1 干货十足!!!!!
zhuzhuxia111 + 1 + 1 我很赞同!
skyward + 1 + 1 谢谢@Thanks!
孤独伴酒 + 1 + 1 谢谢@Thanks!
qtfreet00 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
叽歪 + 1 + 1 不管自己以后会不会学,先码住再说
ssVavava + 1 我很赞同!
正己 + 2 + 1 赞一个
thinkpad_420 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

yiwai2012 发表于 2020-9-10 09:19
冥界3大法王 发表于 2020-9-9 10:44
@夜步城
对啊,对啊,尤其见到 方法名()字样的双击或回车进入   或Ctrl+F6 实在方便啊
简直是鸟枪换 ...

你这个更不全啊,最关键的都没有,jeb要连接模拟器动态调试的前提就是要能连接上找到进程
正己 发表于 2020-9-9 13:56
wgz001 发表于 2020-9-9 08:27
nevinhappy 发表于 2020-9-9 08:50
ninebell,你是最胖的!
muggleGod 发表于 2020-9-9 09:03
安卓大法好
霏映 发表于 2020-9-9 09:31
感谢分享,大佬
whngomj 发表于 2020-9-9 09:55
感谢分享,学习了.
夜步城 发表于 2020-9-9 10:02
这么好啊,之前只会Android Studio调试,但是不好用,我有时间试试这个,太棒了!
hbyybw 发表于 2020-9-9 10:43
感谢分享,学习了.
 楼主| 冥界3大法王 发表于 2020-9-9 10:44
夜步城 发表于 2020-9-9 10:02
这么好啊,之前只会Android Studio调试,但是不好用,我有时间试试这个,太棒了!

@夜步城
对啊,对啊,尤其见到 方法名()字样的双击或回车进入   或Ctrl+F6 实在方便啊
简直是鸟枪换炮啊~~

@nevinhappy
这都知道,被人肉了?

@wgz001
拜见老魔
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-24 20:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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