我知道 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/