学习Smali(以及如何/何时使用Dalvik VM操作码)的最佳方式是什么?
我认识Java,学过C但从未使用过。 我不知道任何forms的组装,无论是虚拟机还是真正的组装。
学习如何入侵Smali最好的方法是什么?
更新:正如我昨天承诺,我添加了一些链接到列表。
UFFF。 没有太多的文件! 最好的build议? 反编译,阅读和调整,看看它是如何做的,并一次又一次地开始循环。 但是你没有要求这个build议,对吧? ;)
现在,有一些地方会有一些帮助:
http://androidcracking.blogspot.com/search/label/smali这是最好的一个。; 我甚至问过这个人一个问题,他很快回答,所以去看看。
http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html非常全面的表格; – 很好的参考!
http://webchat.freenode.net/?channels=smali我从来没有尝试过,但它在baksmali作者(; http://code.google.com/p/smali/ )的google代码页上,
http://forum.xda-developers.com/showthread.php?t=777707最后,这是我前段时间描述Captivate相机的一些窍门。; 你可以按照diff中的内容,因为我对每个.diff文件做了些什么评论。 好的东西从20号后开始。
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中开始编写非常基本的类和方法,编译它们,然后再编写自己的代码。 你确切地知道它做了什么,所以它会更容易遵循。
祝你好运!
我仍然感到惊讶的是,人们不使用官方的Dalvik格式文件作为主要参考。 在较旧的版本中,Dalvik文档位于Android源代码下的dalvik / docs中。 您要查看的特定文件称为dalvik-bytecode.html。 字节码定义的一些版本成为了android.com开发者文档的一部分:
在source.android.com上的dalvik-bytecode.html
作为一个额外的便利,我偶尔在我的个人网站上反映这些文档。 在这种情况下:
dalvik-bytecode.html在milk.com上
我在smali网站上有几个维基页面,提供一些信息:
http://code.google.com/p/smali/wiki/Registers
http://code.google.com/p/smali/wiki/TypesMethodsAndFields
在smali / baksmali集成testing中,有一些使用每个操作码的smali代码示例:
smali集成testing