版主
论坛元老
  
- 金币
- 21344
- 好评
- 564
- 信誉
- 100
  
|
本帖最后由 ꯭清꯭羽꯭ღ 于 2019-6-27 17:57 编辑
在这里,丢一个自制的Log工具类,用于逆向分析和调试,特点:
◎可以输出任何格式的对象(String Object等等)
◎显示输出所在类名和行号(行号就是smali对应的.line,如果smali中没有.line,则显示-1)
◎内置Z D I S J ...修饰符的转换
◎简单易用
点击直达演练贴
分享原因
现在就教你们是怎样得来的@gfce @情非得已c 
食用说明:
首先,打开你要调试的dex工程,没有就新建一个
将smali文件放到工程的classes目录里面
◎初始化,两个方式,喜欢哪个就用哪个
调用代码- invoke-static {p0}, Lmutil/Log;->init(Landroid/content/Context;)V
复制代码
有的小白不知道加在哪个类名,好吧,教你找
如图,找到相对于的类名,然后在工程打开即可,如果最上面的<Application没有name这样的标签,那么找下面那个主入口就可以了
◎输出,有三种输出方式,按需所用
<1>Toast方式,这个大家都熟悉吧,不知道Toast是什么的话就建议别玩Android了 ,自行去百度
调用代码- invoke-static {v0}, Lmutil/Log;->toast(Ljava/lang/Object;)V
复制代码
<2>Copy(复制)方式,说白了就是将信息复制到粘贴板
调用代码- invoke-static {v0}, Lmutil/Log;->copy(Ljava/lang/Object;)V
复制代码
使用方式同上
<3>out,以文件的方式输出,默认保存在/sdcard/包名.log〈不支持自定义,没必要,强迫症可以自己改〉
使用方式同Toast
调用代码- invoke-static {v0}, Lmutil/Log;->out(Ljava/lang/Object;)V
复制代码
好了,三种输出方式介绍完毕
下面说一些注意事项
◎文件输出的方式,必须要有读写手机储存的权限,如果没有的话,请将以下代码复制到AndroidManifest.xml里面
- <!-- 修改或删除您的USB存储设备中的内容 -->
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
- <!-- 读取您的USB存储设备中的内容 -->
- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
复制代码
◎如果遇到Z I D 这样的修饰符,则必须转换再输出,eg:
- invoke-static {v0}, Lmutil/Log;->Z2O(Z)Ljava/lang/Object;
- move-result-object v0
- invoke-static {v0}, Lmutil/Log;->out(Ljava/lang/Object;)V
复制代码
- invoke-static {v0}, Lmutil/Log;->I2O(I)Ljava/lang/Object;
- move-result-object v0
- invoke-static {v0}, Lmutil/Log;->out(Ljava/lang/Object;)V
复制代码
◎D 和 J 要两个寄存器,比如
- invoke-static {v0, v1}, Lmutil/Log;->J2O(J)Ljava/lang/Object;
- move-result-object v0
复制代码
◎切记,必须初始化
最后附上文件和所有调用代码
点击下载[6.27-13:28打包]
调用代码
- invoke-static {p0}, Lmutil/Log;->init(Landroid/content/Context;)V
- invoke-static {v0}, Lmutil/Log;->toast(Ljava/lang/Object;)V
- invoke-static {v0}, Lmutil/Log;->copy(Ljava/lang/Object;)V
- invoke-static {v0}, Lmutil/Log;->out(Ljava/lang/Object;)V
复制代码
- invoke-static {v0, v1}, Lmutil/Log;->D2O(D)Ljava/lang/Object;
- move-result-object v0
复制代码
- invoke-static {v0}, Lmutil/Log;->F2O(F)Ljava/lang/Object;
- move-result-object v0
复制代码
- invoke-static {v0}, Lmutil/Log;->S2O(S)Ljava/lang/Object;
- move-result-object v0
复制代码
...算了 你们自己去smali里面找吧,不想写了
此工具纯属娱乐,请勿用于非法用途,一切后果自负,与清羽无关,不喜勿喷 祝你们玩的愉快
溜了溜了 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
-
查看全部评分
总评分:好评 +4
金币 +3
|