在smali文件中添加java log
来源:互联网 发布:mac上的app如何退订 编辑:程序博客网 时间:2024/05/14 14:36
在上文中我们提到了如何去反编译apk,反编译后会在out目录里面生成smali文件。这篇文章主要就是尝试在smali文件中添加java log。
首先我们需要找到我们要添加log的那个文件在哪?因为现在的大部分apk都会混淆的,所以查看起来会比较费力。 如果是Activity,service等等,可以通过AndroidManifest.xml去查找。当然我们也可以通过dex2jar, jd-gui去是一下。(对于没有混淆过的apk,那么就相对简单多了,我试了几个GMS的apk,貌似都可以直接读源码)
这里我们假设是在一个Activity的onCreate里面的加一段log,这里先抛弃一些细节。
1. 直接打开我们要编辑的smali文件,然后搜索onCreate,我的代码如下:
# virtual methods.method protected onCreate(Landroid/os/Bundle;)V .locals 1 .parameter .prologue .line 28 invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V .line 29 const v0, 0x7f030010 invoke-virtual {p0, v0}, Lcom/yuanpu/nineexpress/WelcomeActivity;->setContentView(I)V .line 30 const v0, 0x7f09004f invoke-virtual {p0, v0}, Lcom/yuanpu/nineexpress/WelcomeActivity;->findViewById(I)Landroid/view/View; move-result-object v0 check-cast v0, Landroid/widget/ImageView; iput-object v0, p0, Lcom/yuanpu/nineexpress/WelcomeActivity;->b:Landroid/widget/ImageView; .line 31 invoke-direct {p0}, Lcom/yuanpu/nineexpress/WelcomeActivity;->a()V .line 32 return-void.end method
里面的.locals 代表的是寄存器的个数,当我们添加函数变量的时候需要添加对应的个数。
const-string v1, "TAG"
const-string v2, "Debug!!!!!!!"
const-string v2, "Debug!!!!!!!"
#v2 为要输出的调试信息字符串
invoke-static {v1,v2} ,Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
修改好的代码如下:
# virtual methods.method protected onCreate(Landroid/os/Bundle;)V .locals 3 .parameter .prologue .line 28 invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V const-string v1, "TAG" const-string v2, "Debug!!!!!!!" invoke-static {v1,v2} ,Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I .line 29 const v0, 0x7f030010 invoke-virtual {p0, v0}, Lcom/yuanpu/nineexpress/WelcomeActivity;->setContentView(I)V .line 30 const v0, 0x7f09004f invoke-virtual {p0, v0}, Lcom/yuanpu/nineexpress/WelcomeActivity;->findViewById(I)Landroid/view/View; move-result-object v0 check-cast v0, Landroid/widget/ImageView; iput-object v0, p0, Lcom/yuanpu/nineexpress/WelcomeActivity;->b:Landroid/widget/ImageView; .line 31 invoke-direct {p0}, Lcom/yuanpu/nineexpress/WelcomeActivity;->a()V .line 32 return-void.end method
关于Smali相关的详细解释,可以参考:
http://blog.csdn.net/wdaming1986/article/details/8299996
http://book.2cto.com/201212/12468.html
http://blog.csdn.net/xuesen_lin/article/details/7186638
0 0
- 在smali文件中添加java log
- Smali反编译Java文件
- smali文件对比java文件
- smali文件对比java文件
- smali文件对比java文件
- smali文件对比java文件
- Android开发过程中在sh,py,mk文件中添加log信息的方法
- Android开发过程中在sh,py,mk文件中添加log信息的方法
- 在Android的源码中添加LOG
- 在Android的源码中添加LOG
- 编辑java转smali文件
- MFC 在一个项目中添加log文件的读写操作问题
- java 读取TXT 文件 在切分 添加在数据库中
- smali文件对比java文件(转)
- Android 反编译 -smali文件对比java文件
- Android 反编译 -smali文件对比java文件
- Android 反汇编Smali语言中插入log打印
- Android 反汇编Smali语言中插入log打印
- SharePoint自定义错误页面和404页面(原)
- csdn开源夏令营-ospaf中期报告
- pppd 中文man页面
- #ifdef vs #if defined
- LightOJ 1140 How Many Zeroes?(数位dp 记忆化搜索方法)
- 在smali文件中添加java log
- keil mdk代码格式化
- DM365/DM355/DM6467上使用的YUV颜色空间说明
- UVA327
- DZY loves FFT
- mongodb mapreduce使用总结
- 从getChildByTag函数看Menu与MenuItem之间的关系
- <开发进阶与实战>读书笔记
- C++中出现的计算机术语5