Tag: 反汇编

什么是好的机器人拆解可以产生信息效果

标题,像函数调用,运行时的应用程序行为

了解Dalvik代码的反汇编?

我正在和我写的一个小型Hello World Android应用程序中使用smali和baksmali 。 我的源代码是: package com.hello; import android.app.Activity; import android.os.Bundle; public class Main extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } 然后被拆解为: .class public Lcom/hello/Main; .super Landroid/app/Activity; .source “Main.java” # direct methods .method public constructor ()V .locals 0 .prologue .line […]

是否有java的反汇编程序和调试程序(ala OllyDbg / SoftICE for assembler)?

是否有类似于OllyDbg / SoftICE for java的实用程序? 即执行类(来自jar / with class path),并且在没有源代码的情况下,显示中间代码的反汇编,能够逐步执行/跳过/搜索引用/编辑内存中的特定中间代码/将编辑应用于文件。 。 如果没有,是否甚至可以写这样的东西(假设我们愿意在调试期间没有热点的情况下生活)? 编辑:我不是在谈论JAD或JD或Cavaj。 这些都是很好的反编译器,但我不想要一个反编译器有几个原因,最值得注意的是它们的输出不正确(充其量,有时只是简单的错误)。 我不是在寻找一个神奇的“编译到java代码的字节” – 我想看到即将执行的实际字节。 此外,我希望能够更改这些字节(就像在汇编调试器中一样),并希望将更改的部分写回类文件。 Edit2:我知道javap存在 – 但它只有一种方式(并且没有任何分析)。 示例(代码取自vmspec文档):从java代码中,我们使用“javac”来编译它: void setIt(int value) { i = value; } int getIt() { return i; } 到java .class文件。 使用javap -c我可以得到这个输出: Method void setIt(int) 0 aload_0 1 iload_1 2 putfield #4 5 return Method int getIt() […]

“静态合成”是什么意思?

我正在查看从Java字节码获得的一些反汇编代码。 我看到一些声明如下: .method static synthetic access$0()Lcom/package/Sample; 我无法弄清楚synthetic或access$0含义。 有人可以帮我理解这部分吗?