红心J 发表于 2017-8-8 12:35

android studio简单的动态调试

本帖最后由 红心J 于 2018-3-19 12:27 编辑

~~ 分享自己的学习笔记。写的不好 请大家见谅。如果有什么问题请大家提出来。

工具:android studio , android killer   , bluestacks .
程序:链接:https://pan.baidu.com/s/16B9L6umA52zYWRPtXwUI_A 密码:lb1g

抱歉大家,忘记说了:要安装插件ideasmali,还要在Manifest 中把 android:debuggable="true" 这里要是true

首先,用android killer      反编译下这个Apk.

开启bluestacks
运行Cmd ,查看有没有识别到bluestacks
输入 : adbdevices

然后打开android studio,导入android killer刚刚反编译出的代码。

选中所在目录


点OK,后面的保持默认选项,直接点Next.
操作完后,选择 Project

如下:

接下来在程序的入口位置下断点。去到MainActivity.smali
在onCreate 函数处下断点。

接着ADB调试状态启动程序。如命如下:
adb shellam start -D -n packagename/android:name
去AndroidManifest.xml文件找 packagename和 android:name

所以输入的命令应该是:
adb shellam start -D -n com.uc.uc_crackme/.MainActivity

切换到bluestacks看到:

然后来配置远程调试

点 + 号 ,选择 Remoter

Host 为 localhost,端口改成8700,然后ok。

然后打开 Android device Monitor

图中的小虫子标记的程序就是我们调试的程序了。

到Android studio中,点击debug,就是下面红框中的。

此时程序,就在我们之前下在onCreate 的位置出 断下了。

在 run 选项下可以看到一些调试按键

到这里调试程序就搞定了。
F8单步走就可以了
--------------------------------------------------------------------------------------------------------------------
下面就是通过调试,来找到程序的key
也就是找下断点的位置了,我就不细说。直接到相应位置下断点
在 MainActivity$1.smali中的 onClick 这里下个断点

这个断点是 我们输入 1234567890

然后点登陆,就会断到该位置,如下图:

然后你想跟踪什么变量,选中该变量,鼠标右键,选下面的Add to watches

变量会加到variables框里

程序走到这里的时候,看到 v5中 是我们输的 1234567890

接着继续走,到下面这里

看到 v5 = false,应该就清楚程序大概流程了。

我们输入的1234567890,通过变换后,变成了:么广亡门义之尸弓己丸
而正确的验证应该是:义弓么丸广之
那么:么广亡门义之尸弓己丸
         12 34 567890

所以: 义弓么丸广之
            5 8 10 26

那么我们输入 5 8 10 26 试试,验证下我们的想法。

显然,正确的key就是 5 8 10 26
当然这个题也可以通过其他方法得出Key。我这里只是借这个程序讲一下动态调试。
-----------------------------------------------------------
另外,在调试时可能会出现 Android device Monitor 中的没有运行相关的进程。
也就是模拟器bluestacks的问题。
出现下面这样的情况,解决办法就是把bluestacks 卸载重装。

感到哈哈丶 发表于 2017-8-8 16:29

本帖最后由 感到哈哈丶 于 2017-8-8 16:31 编辑

关键的东西没说,先要安装插件ideasmali,然后要在Manifest中加入android:debuggable="true",重新打包安装,才能调试

小疯子online 发表于 2018-5-3 11:06

能不能请教个问题!大神我 为什么 有些apk反编译后 回编不回来
这种情况 该怎么解决啊   是 android killer的问题还是 我这边需要怎么处理啊 ?


>I: Building resources...
>W: C:\Users\王宇峰\Downloads\新建文件夹\projects\com.yibasan.lizhifm\Project\res\values-v24\styles.xml:11: error: Error retrieving parent for item: No resource found that matches the given name '@android:style/Animation.OptionsPanel'.
>W:
>W: C:\Users\王宇峰\Downloads\新建文件夹\projects\com.yibasan.lizhifm\Project\res\values-v24\styles.xml:12: error: Error retrieving parent for item: No resource found that matches the given name '@android:style/Animation.LockScreen'.
>W:
>brut.androlib.AndrolibException: brut.common.BrutException: could not exec (exit code = 1):
APK 编译失败,无法继续下一步签名!

nlotc 发表于 2017-8-8 13:24

学习中,感谢楼主分享技术。

妲己再美终是妃 发表于 2017-8-8 14:02

感谢楼主分享技术教程!
最喜欢这种安卓软件调试之类的技术教程了。

lijinjieq 发表于 2017-8-8 14:29

这个什么用呢?

会飞的丑小鸭 发表于 2017-8-8 15:55

教程写的很详细 讲的很好 支持楼主继续发布原创文章

DE377DE477 发表于 2017-8-8 16:07

完全不知所云

xiziyunqi 发表于 2017-8-8 16:14

楼主我怎么下不了断点。。

咚次哒次 发表于 2017-8-8 17:08

学习了,谢谢分享~

红心J 发表于 2017-8-8 20:31

感到哈哈丶 发表于 2017-8-8 16:29
关键的东西没说,先要安装插件ideasmali,然后要在Manifest中加入android:debuggable="true",重新打包安装 ...

对对对。忘记了忘记了,抱歉抱歉。
页: [1] 2 3 4 5
查看完整版本: android studio简单的动态调试