我认识Java,并且学过C但从未使用它.我不知道任何形式的组装,无论是虚拟机还是真实机器.
学习如何攻击Smali的最佳方法是什么?
我将学习一些关于Dalvik VM,dex和Smali的知识.
我读过关于smali的内容,但仍然无法清楚地了解它在编译器链中的位置.它的目的是什么.
这里有一些问题:
先感谢您.
我反向设计了一些android apks来添加一些功能测试的工具.我想知道如果给我一个smali如何我可以添加类似的东西
Log.e(TAG, "some descritpion", e);
Run Code Online (Sandbox Code Playgroud)
到.smali文件中的每个方法.
.class public Ld;
.super Landroid/view/View;
.source "SourceFile"
# instance fields
.field a:Z
.field b:Lcom/rovio/ka3d/App;
# direct methods
.method public constructor <init>(Lcom/rovio/ka3d/App;)V
.locals 2
.parameter
.prologue
const/4 v1, 0x1
.line 317
invoke-direct {p0, p1}, Landroid/view/View;-><init>(Landroid/content/Context;)V
.line 313
const/4 v0, 0x0
iput-boolean v0, p0, Ld;->a:Z
.line 314
const/4 v0, 0x0
iput-object v0, p0, Ld;->b:Lcom/rovio/ka3d/App;
.line 318
iput-object p1, p0, Ld;->b:Lcom/rovio/ka3d/App;
.line 319
invoke-virtual {p0, v1}, Ld;->setFocusable(Z)V
.line 320
invoke-virtual {p0, v1}, Ld;->setFocusableInTouchMode(Z)V
.line 321
return-void …
Run Code Online (Sandbox Code Playgroud) 它说invoke-virtual
是调用虚方法,而invoke-direct
直接方法.
但是我不清楚什么是"虚方法"什么是"直接方法"?
换句话说,调用什么样的方法invoke-virtual
会是什么样的invoke-direct
?
谁能举一些具体的例子?
提前致谢.
我有一个有效的Android应用程序.其中我没有源代码.我想调试这个应用程序的功能.我可以使用apktool成功逆向工程这个应用程序apk文件 - https://code.google.com/p/android-apktool/ 这个工具生成smali格式的类文件.
我的要求是:
为此,我需要注入/插入smali等效的调试日志或堆栈跟踪.我尝试在其中一个方法的开头添加一些smali指令,但它与ClassVerifyError崩溃.
示例smali代码 -
.method public declared-synchronized b()V
.locals 2
.prologue
.line 87
monitor-enter p0
:try_start_0
iget-object v0, p0, Lcom/example/viewerlib/t/d;->a:Ljava/lang/Thread;
invoke-virtual {v0}, Ljava/lang/Thread;->isAlive()Z
:
:
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我添加smali调试日志.Thnx提前.
我使用APKTool逆向设计了一个Android应用程序,并将.Smali文件作为源代码输出.我将带有应用程序的.Smali文件转换为.Java文件.我能够成功编辑.Java文件,但现在我想将它们转换回.Smali,以便我可以使用新的.Smali文件重新编译应用程序.当我在那里留下.Java文件时,它不会重新编译它并给出一些错误.我找不到任何关于在互联网上编译.Java到.Smali的内容,所以我希望你们能帮助我.
先感谢您,
我目前正在修改一个应用程序。有没有办法将 Smali 文件转换为 Java 进行编辑,反之亦然。我查遍了整个互联网,甚至XDA论坛也无法给我准确的答案。虽然有十几种方法,但没有一个是方便的。
我想转换/仪器Dex文件.转型的目标包括测量代码覆盖率.请注意,源文件不可用.所以检测Dex是唯一的选择.
我想知道是否有任何现有的代码库,我可以看作为编写工具来实现我的目标的示例.
我了解Smali项目以及以Smali为基础的许多其他项目.但是,这些项目都不是我的目的的好例子.
我正在寻找自动转换smali代码或dexlib表示的代码,从中生成smali.后面的选项对我来说是首选,因为可以避免生成smali的开销.