欢迎来到天天文库
浏览记录
ID:30425735
大小:180.04 KB
页数:10页
时间:2018-12-29
《android_apk反编译教程》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、AndroidAPK反编译教程——原帖地址:http://www.miui.com/thread-505062-1-2.htmlGoogleAndroid平台选择了JavaDalvikVM的方式使其程序很容易破解和被修改,首先APK文件其实就是一个MIME为ZIP的压缩包,我们修改ZIP后缀名方式可以看到内部的文件结构,类似SunJavaMe的Jar压缩格式一样,不过比较去别的是Android上的二进制代码被编译成为Dex的字节码,所有的Java文件最终会编译进该文件中去,作为托管代码既然虚拟机可以识别,那么我们就可以很轻松的反编译。所有的类调用、涉及
2、到的方法都在里面体现到,至于逻辑的执行可以通过实时调试的方法来查看,当然这需要借助一些我们自己编写的跟踪程序。Google最然在AndroidMarket上设置了权限保护app-private文件夹的安全,但是最终我们使用修改定值的系统仍然可以获取到需要的文件。一、dexdump方法dexdump是emulator自带提供的查看dex文件的工具,可使用类似这样的命令将dex文件dump到txt文件中:D:ProgramFilesandroid-sdk-windows-1.6_r1platformsandroid-1.6tools>dexdum
3、p.exe-dclasses.dex>spk.dump.txt得到的文件内容,描述了类的信息,但是不怎么好阅读二、AXMLPrinter2.jar+baksmali.jar+smali.jar方法这个方法就强大了,AXMLPrinter2是还原AndroidManifest.xml和main.xml的工具,直接打开这两个xml文件是乱码,而通过还原之后,可以很明白的看到里面的内容(我猜测还是使用了字节异或的方式加的密)。baksmali.jar是反解析dex的工具,smali.jar则是再还原成dex的工具操作方式如下:11、java-jarAXMLP
4、rinter2.jarD:playAndroidManifest.xml>AndroidManifest.txt22、java-jarAXMLPrinter2.jarD:playreslayoutmain.xml>main.txt33、java-jarbaksmali-1.2.5.jar-oclassout/d:playclasses.dex复制代码baksmali可解析(注意,是解析,不是反编译)原java包以及引用的lib包,解析出的文件认真看还是能看懂,比如以下片段:456viewplaincopytoclipboardprint
5、?7.classLcom/paul/test/a;1.superLandroid/view/View;23#staticfields4.fieldprivatestaticfinala:Landroid/graphics/Typeface;56#instancefields7.fieldprivateb:I8.fieldprivatec:I9.fieldprivated:Z10.fieldprivatee:J11.fieldprivatef:I12.fieldprivatel:[Ljava/lang/String;1314#directmethods1
6、5.methodstaticconstructor()V16.registers217sget-objectv0,Landroid/graphics/Typeface;->SANS_SERIF:Landroid/graphics/Typeface;18const/4v1,0x019invoke-static{v0,v1},Landroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface;20move-result-obj
7、ectv021sput-objectv0,Lcom/wiyun/ad/a;->a:Landroid/graphics/Typeface;22return-void23.endmethod24#25#othermethods..........26#27#virtualmethods28.methodpubliconKeyUp(ILandroid/view/KeyEvent;)Z29.registers430const/16v0,0x4231if-eqp1,v0,:cond_832const/16v0,0x1733if-nep1,v0,:cond_b34
8、:cond_835invoke-direct{p0},Lcom/paul/test/a;->d
此文档下载收益归作者所有