java - 学习 Smali 的最佳方式是什么(以及如何/何时使用 Dalvik VM 操作码)?

标签 java android dalvik smali

我知道 Java,也学过 C,但从未使用过。我不知道任何形式的组装,无论是虚拟机还是真实的。

学习如何破解 Smali 的最佳方法是什么?

最佳答案

更新:正如我昨天 promise 的那样,我在列表中添加了更多链接。

呃。周围没有太多文档!最好的建议?反编译、阅读、调整,看看它是怎么做的,然后一次又一次地开始循环。但你没有征求那个建议,对吧? ;)

现在,有几个地方会有点帮助:

http://androidcracking.blogspot.com/search/label/smali 这是最好的一个。我什至问了那家伙一个问题,他回答得很快,你去看看吧。

http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html 非常全面的表格 - 很好的引用!

http://webchat.freenode.net/?channels=smali 我从未尝试过,但它在baksmali作者的google代码页上(http://code.google.com/p/smali/)

http://forum.xda-developers.com/showthread.php?t=777707 最后,这是我前段时间发表的一篇文章,描述了 Captivate 相机的一些黑客行为。 当我对每个 .diff 文件的作用进行一些评论时,您可以关注其中的差异。好东西从帖子#20开始。

http://www.slideshare.net/paller/understanding-the-dalvik-bytecode-with-the-dedexer-tool 带有一些基本概念的有趣幻灯片。开始的好方法。

http://sites.google.com/site/haynesmathew/home/projects/dalvik-notes 甚至比典型的 .smali 还要低级。供以后引用,但值得一读。

http://jasmin.sourceforge.net/guide.html Smali 语法基于 Jasmin,因此提供了很好的概念。

http://groups.google.com/group/apktool?pli=1 那里的一些讨论值得一读。当您陷入困境时,这也是一个搜索的好地方。

最后,但并非最不重要的是,我使用的最有用的技巧:开始用 Java 编写非常基本的类和方法,编译它们,然后 baksmali 编写你自己的代码。你确切地知道它的作用,所以它会更容易理解。

祝你好运!

关于java - 学习 Smali 的最佳方式是什么(以及如何/何时使用 Dalvik VM 操作码)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5656804/

相关文章:

java - 如何获取 Box2D 多边形的坐标?

android - onTouchListener 警告 : onTouch should call View#performClick when a click is detected

java - Python 代码转换为 JVM

android - 以编程方式 native 崩溃

java - 插入android数据库时出现异常

java - 可以用java连接MySQL数据库,但不能用PHP连接?

java - 自动扫描中的Spring Filter组件

android - 具有重叠 View 的 RelativeLayout

c# - 我应该如何使用 xamarin 表单在 android 上创建主要 Activity 以支持画中画模式?

java - 在Android中实现类Spring包扫描