apk程序反编译汉化修改smali文件_第1页
apk程序反编译汉化修改smali文件_第2页
apk程序反编译汉化修改smali文件_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

apk程序反编译、汉化、修改smali文件另外貌视还有AndroidResEdit之类的专用汉化软件,不用搞什么反编译,用起来可能更简单。四、SDcardtoFlash对于N5p,app2sd只是一个传说,不过sd2flash下面就可以实现。用SD卡玩机的人可以无视。那些必须有SD1M,但游戏关卡数据可能是几十甚至上百M,这类游戏一般是主程序安装在内存中,而关卡数据会要求你安装或下载到SDSDSD,N5p8G(实际好像只有6.5G)FlashapkFlash闪存就是程序你要的SD正式修改时,除了要修改所有源文件(主要是.smali程序源文件)中的/sdcard路径,使之指向/flash外,还要修改含有Environment.getExternalStorageState和Environment.getExternalStorageDirectory的源文件,前者用于检测是否安装SD卡,后者获取SD卡的路径。那么从头来修改思维导图ThinkingSpacePro2.16的数据读写路径。原版程序你必须要有SD卡才能正常保存你的数据,修改之后,所有数据读取、保存都针对N5p自己的Flash闪存,从而解放SD卡。用apktool反编译ThinkingSpacePro.apkapktooldThinkingSpacePro.apk反编译后得到ThinkingSpacePro文件夹,存放着程序源文件。使用UltraFileSearchThinkingSpacePro\文字的文件(搜索时,UltraFileSearch\的选项)。没有UltraFileSearchwindows搜索工具,只是要用搜索文件中包含有指定内容的文件,而不是搜索文件名(我的系统搜索工具坏了,所以用UltraFileSearch)。对搜索到的文件(.smali)用记事本打开编辑,将文件中所有\sdcard\的字串改成\字串,这样将原先指向/sdcard的路径全部指向/flash搜索程序中判断SD卡是否安装的方法,修改它使判断SD卡是否安装的方法返回True。一般的检测SD所以用UltraFileSearch\字串的文件。有些软件会用这个检测,有些软件则不用它,所以找不到的话可以窃喜:不用那么复杂了。针对思维导图这个程序,在App.smali中会找到(其它程序不一定在这里)。具体查找到的代码如下:.methodpublicstaticisSdPresent()Z.logue.line476invoke-static{},Landroid/os/Environment;->getExternalStorageState()Ljava/lang/String;move-result-objectv0const-stringv1,\invoke-virtual{v0,v1},Ljava/lang/String;->equals(Ljava/lang/Object;)Zmove-resultv0returnv0.endmethod这个是Dalvikopcodes,修改它需要一点专业知识(参考这里),修改成如下(后来发现似乎只需要将最后的returnv0改成return1就可以了,不过没去做测试,对Dalvikopcodes尚未仔细研究过):.methodpublicstaticisSdPresent()Z.logue.line476const-stringv0,\const-stringv1,\invoke-virtual{v0,v1},Ljava/lang/String;->equals(Ljava/lang/Object;)Zmove-resultv0returnv0.endmethod改后因为v0始终等于v1,所以这个方法就返回True,这样就欺骗程序我们已经安装了SD卡了。搜索程序中获取SDsdcard变成flashflash就是我们的sdcard。一般的获取SD法如下:Environment.getExternalStorageDirectory注意这个方法返回的是一个java.io.File点。所以用UltraFileSearch的文件(.smali),个程序会搜索到App.smaliFileIO.smali(FileIO.smali):.line246:cond_0new-instancev2,Ljava/lang/StringBuilder;invoke-direct{v2},Ljava/lang/StringBuilder;->()Vinvoke-static{},Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;move-result-objectv3invoke-virtual{v2,v3},Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;move-result-objectv2sget-objectv3,Ljava/io/File;->separator:Ljava/lang/String;把它修改成如下:.line246:cond_0new-instancev2,Ljava/lang/StringBuilder;invoke-direct{v2},Ljava/lang/StringBuilder;->()Vconst-stringv3,\invoke-virtual{v2,v3},Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;move-result-objectv2sget-objectv3,Ljava/io/File;->separator:Ljava/lang/String

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论