android逆向分析中常用的smali注入代码

来源:互联网 发布:网络营销推广软件 编辑:程序博客网 时间:2024/05/17 01:04

1、增加调试Log的信息

例如:

Log.d("Text","Hello smalo");   使用Smali指令来描述为:


const-string v1, "Text"

const-string v2, "Hello smalo"

invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I


2、弹出消息框

例如:

new AlertDialog.Builder(self)
.setTitle("普通对话框")
.setMessage("你好,Android!")
.show();


使用Smali指令来描述为:


new-instance v1,Landroid/app/AlertDialog$Builder;
invoke-direct {v1,p0}, Landroid/app/AlertDialog$Builder;-><init>(Landroid/content/Context;)V

.line 29
.local v1,builder:Landroid/app/AlertDialog$Builder;
const-string v2,"\u666e\u901a\u5bf9\u8bdd\u6846"
invoke-virtual {v1,v2}, Landroid/app/AlertDialog$Builder;->setTitle(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder;

.line 31
const-string v2,"\u4f60\u597d\uff0cAndroid!"
invoke-virtual {v1,v2},Landroid/app/AlertDialog$Builder;->setMessage(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder;

.line 52
invoke-virtual {v1},Landroid/app/AlertDialog$Builder;->create()Landroid/app/AlertDialog;

move-result-object v2
invoke-virtual {v2},Landroid/app/AlertDialog;->show()V


3、Method Profiling(调用关系)

#android.os.Debug.startMethodTracing("123");  "123"为文件名
#a();
#android.os.Debug.stopMethodTracing();

Android-Manifest.xml添加SD卡写入权限
<user-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

#android.os.Debug.startMethodTracing("123");
const-string v0, "123"
invoke-static {v0}, Landroid/os/Debug;->startMethodTracing(Ljava/lang/String;) V


#android.os.Debug.stopMethodTracing();
invoke-static {}, Landroid/os/Debug;->stopMethodTracing() V

SD卡的根目录生成123.trace
分析命令:
adb pull /mnt/sdcard/123.trace
traceview 123.trace


0 0