android捕鱼达人修改方法(反编译、修改、打包)
- 格式:doc
- 大小:204.00 KB
- 文档页数:4
目录:瑞芯微android固件包介绍一、解包、打包二、固件升级三、固件修改1.固件精减、添加APK软件2.提取Root权限3.修改用户分区大小4.修改设置中“关于MID”中的机型型号5.美化界面6. 美化桌面瑞芯微android固件包介绍瑞芯微的android固件包分两种:一种为量产升级包(暂且如此称呼吧,PS:其实称之为开发包较为合适,因为是使用开发工具进行升级。
),使用量产升级工具RKAndroidTool.exe进行升级,量产升级包的文件包含:HWDEF、package-file、parameter、recover-script、Rock28Boot(L).bin、update-script和一个Image文件夹,里边又包含boot.img、kernel.img、misc.img、recovery.img 、system.img五个镜像文件。
System.img包含所有用户资源,大部分情况下修改system.img文件就能达到我们的目的。
本文也是重点围绕system.img的修改。
另一种为用户升级包(也暂且如此称呼吧),即将上述量产升级包的文件用工具打包成一个文件――update.img,使用用户升级工具RKAndroidDM.exe进行升级。
此文件包需通过解包成量产升级包后才能修改,修改后再打包成update.img进行升级。
一、解包、打包对于update.img的解包、打包,需用到附件“打包解包工具”中的AFPTool.exe、mkupdate.bat、unpack.bat三个文件,其中unpack.bat为解包工具,mkupdate.bat为打包工具。
将用户升级包update.img和上述三个文件放在同一目录下,双击unpack.bat后,就可以将用户升级包解包成6个文件和一个Image文件夹,即和量产升级包完全相同的文件。
此时可对相应的文件进行修改,修改完成后,再双击mkupdate.bat,会在Image文件夹下产生一个update.img,此文件就是打包后新生成的用户升级包文件。
AndroidAPK反编译apktool使⽤教程2017年棋牌游戏突然就⽕了,正所谓春江⽔暖鸭先知本猿处在软件⾏业中就能清晰的感受到市场的变化,最近⽼家那边也是玩的风⽣⽔起,于是最近闲暇时光想到反编译下这些棋牌软件,看看代码实现的思路(注:反编译不是让各位开发者去对⼀个应⽤破解搞重装什么的,主要⽬的是为了促进开发者学习,借鉴好的代码,提升⾃我开发⽔平。
)⼯具介绍:apktool作⽤:主要查看res⽂件下xml⽂件、AndroidManifest.xml和图⽚。
(注意:如果直接解压.apk⽂件,xml⽂件打开全部是乱码)dex2jar作⽤:将apk反编译成Java源码(classes.dex转化成jar⽂件)jd-gui作⽤:⽤来查看APK中classes.dex转化成出的jar⽂件,即源码⽂件2017年12⽉1⽇新版本apktool⽤法:1.下载两个⽂件apktool.bat和apktool.jar(这个如果你下载的⽂件有版本号,⽐如apktool_2.3.0.jar,就要改名字为apktool.jar),这⾥我已经打包好了传到了我的CSDN(),直接下载就OK了;2.然后把上⾯两个⽂件解压放到C:\Windows下⾯,放到这⾥是可以全局进⾏使⽤(我是windows系统,其他系统按照⾃⼰的来)如下图:3.使⽤⽅法把要解压的apk⽂件放在⾃⼰任意⼀个盘的⽬录下,在apk的⽬录下,按住shift+⿏标右键打开cmd⿊窗⼝如下图:接下来输⼊官⽅给的命令//当输⼊完这两个命令后apktool d test.apkapktool b test//出现如下图⼀样的说明就反编译成功了,在他的同级⽬录下就多出了⼀个⽂件夹,⾥⾯就是反编译出来的源码,具体有啥我就不细说了哈,⾃⼰慢慢研究吧!4.Apk反编译得到Java源代码下载上述⼯具中的dex2jar() 和 jd-gui() ,解压将要反编译的APK后缀名改为.rar或则 .zip,并解压,得到其中的额classes.dex⽂件(它就是java⽂件编译再通过dx⼯具打包⽽成的),将获取到的classes.dex放到之前解压出来的⼯具dex2jar-2.0⽂件夹内,在命令⾏下定位到d2j-dex2jar.bat所在⽬录(现在这个⽬录增加了许多命令,⼀定要看清楚哦),输⼊d2j-dex2jar.bat classes.dex效果如下:说明就成功了会看到同级⽬录下会⽣成⼀个classes_dex2jar.jar的⽂件,然后打开⼯具jd-gui⽂件夹⾥的jd-gui.exe,之后⽤该⼯具打开之前⽣成的classes_dex2jar.jar⽂件,便可以看到源码了,效果如下:通过反编译,你可以获知该应⽤⽤到了什么第3⽅的库⽂件,它的代码是如何编写的等等。
androidapk包反编译成java⽂件
最近公司做了⼀个app项⽬,安装成功后使⽤了⼀段时间,发现了⼀些问题需要修改,但外包公司没有提供源码,为了快速修改并解决问题,公司决定⾃⼰动⼿反编译apk包,经过查询资料,使⽤以下⽅法可以完成。
⼀、把apk包后缀改为zip
⼆、解压Zip得到classes.dex⽂件
三、
我们需要⽤到dex2jar 把dex⽂件转为jar⽂件
把解压得到的classes.dex⽂件放⼊dex2jar.bat所在⽬录
四、在classes.dex所在⽂件夹下shift+右键--》在此处打开命令窗⼝-->输⼊启动⽂件名(.bat⽂件名)
和classes.dex
成功后会在classes.dex⽂件夹⽣成对应的jar包
五、下载jd-gui(本⼈把它称作:京东-贵)
下载后解压得到
六、双击
得到:
七、点击file--》open找到对应的jar包就可以得到对应的java⽂件了,然后file--》saveallsources保存即可得到java源码。
我Android APP怎样不被破解和反编译话不多说直接进入主题,Android开发者都会遇到APK被破解的情况。
而我们怎能让Android APP不被破解和反编译呢?首先我们要知道普通的加密技术如混淆代码、防二次打包技术已经无法保证APK的安全。
而对于DEX、RES、.SO 库的保护目前普通的技术还无法实现,所以我们要寻求第三方加密保护平台。
对APK进行高级别的加密保护,来防止APP被破解和反编译的情况。
下面我就向大家分享某加密平台的使用步骤!首先我们先登陆官网注册一个账号,注册在右上角。
如果已经拥有账号可以直接使用登录使用。
注册成功或是登陆后,进入个人中心。
在最右边可以看到个人中心、操作流程等,我们点击基本资料填写完成信息。
个人资料一定要填写完整,要不然是审核不通过的,无法使用加密服务。
审核通过后就可以使用爱加密的加密服务了。
点击个人中心,在右边有一个“提交加密”,点击进入上传界面。
然后点击“选择文件”,选择要加密的APK包。
根据APK包的大小不同,需要稍等一下。
上传完成后点击“提交加密”,下面就需要工作人员进行加密。
等加密完成后会受到一封邮件,通知你已经加密完成。
然后我们点击加密记录,会发现需要加密的APK包已经加密完成。
我们只需要将加密好的APK包下载,然后完成签名就OK了!此次加密已经完成!经过加密的APK包是否真的可以防止破解和反编译呢?我们就到源码安全检测平台检测一下!首先我们登录检测平台可以看到“上传检测文件”,点击后可以选择需要检测的APK文件。
选择我们刚刚加密的文件进行检测!根据APK包的大小不同需要稍等一下!之后检测结就出来了!同时我们也可以使用反编译工具看看能不能再进行破解和反编译!我们通过加密前后的对比分析得出,经过加密后的APK包。
在反编译的时候里面的smali 文件内容已经进行加密,对有的文件已经无法找到。
通过对加密前后的安全检测和反编译分析得知,对APK的DEX、RES、.SO库、的加密是可以对Android APP进行有效的防止破解和反编译的!。
apk破解之dexdump反编译Android程序-OMS操作系统平台专区-(转载)2010-07-0717:28反编译Android程序目前没有什么好的方法,但是在Android Emulator中可以找到一个名为dexdump的程序,文件中的dex执行情况,ophone一些底层的xx。
相关内容都放到了dex文件中,为什么要反编译apk文件呢?就目前来看Android开放度还很低,很多东西只对于软件开发人员来说,保护代码安全也是比较重要的因素之一,不过目前来说Google Android平台选择了Ja容易破解和被修改,首先APK文件其实就是一个MIME为ZIP的压缩包,我们修改ZIP后缀名方式可以看到内部的Jar压缩格式一样,不过比较去别的是Android上的二进制代码被编译成为Dex的字节码,所有的Java文件托管代码既然虚拟机可以识别,那么我们就可以很轻松的反编译。
所有的类调用、涉及到的方法都在里面体现到时调试的方法来查看,当然这需要借助一些我们自己编写的跟踪程序。
模拟器自带了一个dexdump,有兴趣的关APK文件的汉化,我们将在下一次做详细的分析,因为这里主要是修改的不是dex而是资源文件,使用类似齐的方式逐个替换即可,最终再签名下即可使用,这样的行为可以算作是非法修改,不过目前这样的方法在国内AndroidMarket上设置了权限保护app-private文件夹的安全,但是最终我们使用修改定值的系统仍然可以获取=================================================觉着这2个工具配合学习android太靠谱了,所以放上来给大家共享,开源的好处就是好东西大家一起分享;1.首先找到Android软件安装包中的class.dex源文件;2.把class.dex拷贝到dex2jar.bat所在目录。
运行dex2jar.bat classes.dex,生成classes.dex.dex2jar.jar3.运行JD-GUI工具(它是绿色无须安装的)打开上面的jar文件,即可看到源代码俺也是今天才试验了下效果,那是相当的凑效,所以兄弟姐妹们觉着好就给句鼓励的话把apk文件改名为.zip,然后解压缩其中的class.dex文件,它就是java文件编译再通过dx工具打包成的,所以现在我们就用上=================================================关于apk文件反编译的方法(dex2jar和JD-GUI)1、下载dex2jar最新版本0.0.7,下载地址http:2、下载class反编译工具,我用的是jad,大家可以根据自己情况选择。
Android程序反编译⼯具JEB
⼀、下载并打开
JEB是⼀个付费的逆向⼯具,专业版售价⾼达1800美元,此分享仅供学习使⽤,切勿⽤于商业盈利。
下载并解压后,找到jeb_wincon.bat,双击这个批处理程序。
会依次出现⼀个命令⾏窗⼝和JEB程序窗⼝
不⽤在意那个“检查更新出错”,不影响正常使⽤。
⼆、简要介绍
JEB是⼀个功能强⼤的为安全专业⼈⼠设计的Android应⽤程序的反编译⼯具。
⽤于逆向⼯程或审计APK⽂件,可以提⾼效率,节约⼯程师的分析时间。
①可将Dalvik字节码反编译为Java源码,⽆须DEX-JAR转换⼯具
②JEB强⼤的⽤户界⾯使你可以检查交叉引⽤,重命名的⽅法、字段、类、代码和数据之间导航,以及做笔记和添加注释等
③可以检查解压缩的资源和资产、证书、字符串和常量等。
可以保存对JEB数据库⽂件的分析,通过JEB的修订历史记录机制跟踪进展。
④JEB⽀持Windows、Linux和macOS
⑤使⽤Java或Python语⾔,⽤户可以编写⾃⼰的脚本和插件来⾃动执⾏逆向⼯程流程。
⾼级⽤户可以编写完整的分析模块。
三、参考书籍
《Android⾼效进阶:从数据到AI》第9章静态分析Android引⽤。
详解Android的反编译和代码混淆前⾔包括以下内容1. 要反编译apk需要下⾯3个⼯具2. 反编译资源⽂件3. 反编译类⽂件4. 代码混淆要反编译apk需要下⾯3个⼯具1、apktool(资源⽂件获取)作⽤:资源⽂件获取,可以提取图⽚⽂件和布局⽂件进⾏使⽤查看2、dex2jar(源⽂件获取)作⽤:将APK反编译成java源码(classes.dex转化成jar⽂件)3、jd-gui作⽤:查看APK中classes.dex转化成的jar⽂件,即源码⽂件下⾯进⾏反编译资源⽂件和类⽂件:反编译资源⽂件资源⽂件:包括图⽚资源、布局资源、动画、样式等其他资源这样资源⽂件都可以看得到了。
反编译类⽂件⽅式⼀:反编译得到Java类1.下载并解压dex2jar-2.0,得到dex2jar-2.0⽂件夹,⾥⾯包含dex2jar.bat及其⽂件2.将apk⽂件改为xx.zip⽂件,并解压得到classes.dex⽂件,并将其复制到dex2jar-2.0⽂件夹中3⽣成⼀个classes-dex2jar.jar⽂件,使⽤jd-gui.exe打开⽣成的classes-dex2jar.jar⽂件⽅式⼆:直接使⽤smali2java⼯具什么是smali?smali是将Android字节码⽤可阅读的字符串形式表现出来的⼀种语⾔,可以称之为Android字节码的反汇编语⾔。
代码混淆只能混淆java类,不能混淆资源⽂件。
系统定义的组件不能混淆。
必须是导出的apk。
如何实现代码混淆混淆类⽂件修改module:app下的build.gradlebuildTypes {release {//是否需要混淆,默认false代表不混淆,true代表混淆minifyEnabled true//混淆需要⽤到的⼀个⼯具:proguard,对应的⼀个⽂件是:proguard-android.txt(这个⽂件在android-sdk \tools\proguard⽬录下)//proguard是⼀个压缩、优化和混淆Java字节码⽂件的免费⼯具proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}在proguard-rules.pro中添加:把下⾯代码,放⼊proguard-rules.pro⽂末:#指定代码的压缩级别-optimizationpasses 5#包明不混合⼤⼩写-dontusemixedcaseclassnames#不去忽略⾮公共的库类-dontskipnonpubliclibraryclasses#优化不优化输⼊的类⽂件-dontoptimize#预校验-dontpreverify#混淆时是否记录⽇志-verbose# 混淆时所采⽤的算法-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*#保护注解-keepattributes *Annotation*# 保持哪些类不被混淆-keep public class * extends android.app.Fragment-keep public class * extends android.app.Activity-keep public class * extends android.app.Application-keep public class * extends android.app.Service-keep public class * extends android.content.BroadcastReceiver-keep public class * extends android.content.ContentProvider-keep public class * extends android.app.backup.BackupAgentHelper-keep public class * extends android.preference.Preference-keep public class com.android.vending.licensing.ILicensingService#如果有引⽤v4包可以添加下⾯这⾏-keep public class * extends android.support.v4.app.Fragment#忽略警告-ignorewarning##记录⽣成的⽇志数据,gradle build时在本项⽬根⽬录输出###apk 包内所有 class 的内部结构-dump class_files.txt#未混淆的类和成员-printseeds seeds.txt#列出从 apk 中删除的代码-printusage unused.txt#混淆前后的映射-printmapping mapping.txt########记录⽣成的⽇志数据,gradle build时在本项⽬根⽬录输出-end###### #####混淆保护⾃⼰项⽬的部分代码以及引⽤的第三⽅jar包library########-libraryjars libs/umeng-analytics-v5.2.4.jar#三星应⽤市场需要添加:sdk-v1.0.0.jar,look-v1.0.1.jar#-libraryjars libs/sdk-v1.0.0.jar#-libraryjars libs/look-v1.0.1.jar#如果不想混淆 keep 掉-keep class com.lippi.recorder.iirfilterdesigner.** {*; }#友盟-keep class com.umeng.**{*;}#项⽬特殊处理代码#忽略警告-dontwarn com.lippi.recorder.utils**#保留⼀个完整的包-keep class com.lippi.recorder.utils.** {*;}-keep class com.lippi.recorder.utils.AudioRecorder{*;}#如果引⽤了v4或者v7包-dontwarn android.support.**####混淆保护⾃⼰项⽬的部分代码以及引⽤的第三⽅jar包library-end####-keep public class * extends android.view.View {public <init>(android.content.Context);public <init>(android.content.Context, android.util.AttributeSet);public <init>(android.content.Context, android.util.AttributeSet, int);public void set*(...);}#保持 native ⽅法不被混淆-keepclasseswithmembernames class * {native <methods>;}#保持⾃定义控件类不被混淆-keepclasseswithmembers class * {public <init>(android.content.Context, android.util.AttributeSet);}#保持⾃定义控件类不被混淆-keepclassmembers class * extends android.app.Activity {public void *(android.view.View);}#保持 Parcelable 不被混淆-keep class * implements android.os.Parcelable {public static final android.os.Parcelable$Creator *;}#保持 Serializable 不被混淆-keepnames class * implements java.io.Serializable#保持 Serializable 不被混淆并且enum 类也不被混淆-keepclassmembers class * implements java.io.Serializable {static final long serialVersionUID;private static final java.io.ObjectStreamField[] serialPersistentFields;!static !transient <fields>;!private <fields>;!private <methods>;private void writeObject(java.io.ObjectOutputStream);private void readObject(java.io.ObjectInputStream);ng.Object writeReplace();ng.Object readResolve();}#保持枚举 enum 类不被混淆如果混淆报错,建议直接使⽤上⾯的 -keepclassmembers class * implements java.io.Serializable即可#-keepclassmembers enum * {# public static **[] values();# public static ** valueOf(ng.String);#}-keepclassmembers class * {public void *ButtonClicked(android.view.View);}#不混淆资源类-keepclassmembers class **.R$* {public static <fields>;}#避免混淆泛型如果混淆报错建议关掉#–keepattributes Signature#移除log 测试了下没有⽤还是建议⾃⼰定义⼀个开关控制是否输出⽇志#-assumenosideeffects class android.util.Log {# public static boolean isLoggable(ng.String, int);# public static int v(...);# public static int i(...);# public static int w(...);# public static int d(...);# public static int e(...);#}#如果⽤⽤到Gson解析包的,直接添加下⾯这⼏⾏就能成功混淆,不然会报错。
apktool反编译工具使用教程随着安卓的普及,用户群越来越大,软件的要求也越来越高,写篇反编译教程,大家自己捣鼓修改软件吧。
(说白了就是解包和打包APK文件)一:首先下载附件,安装JAVA运行环境:安装地址:/zh_CN (安装过的不用重复安装)APKTool.zip (2.73 MB)二:(1)解压APKTOOL到电脑(我的是F盘),打开电脑开始--运行CMD命令(2)在窗口中输入命令定位到文件夹命令说明:apktool d DJ.apkapktool d为反编译命令,其中d代表decodeDJ.apk为被反编译的apk安装包的文件名(可以自己定义)反编译后大家可以看到F盘,apktool文件夹内出现一个DJ文件夹,具体文件夹结构说明在本文结束有讲解三:编译打包:(重新把修改过的文件打包为APK格式)打包命令为:apktool b DJ(DJ为刚才的文件夹名称)重新编译完成后,DJ文件夹内会新增一个dist文件夹,里面的DJ.apk文件就是重新编译好的apk安装包,签名后即可安装。
签名工具下载:地址:/file/bhgviics#APK文件结构说明(来源于互联网)AndroidManifest.xml该文件是每个应用都必须定义和包含的,它描述了应用的名字、版本、权限、引用的库文件等等信息,如要把apk上传到Google Market上,也要对这个xml做一些配置。
在apk中的AndroidManifest.xml是经过压缩的,可以通过AXMLPrinter2工具解开,具体命令为:java -jar AXMLPrinter2.jar AndroidManifest.xmlMETA-INF目录META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全。
在eclipse编译生成一个apk包时,会对所有要打包的文件做一个校验计算,并把计算结果放在META-INF目录下。
这就保证了apk包里的文件不能被随意替换。
教你如何反编译APKAPK文件是Android应用程序的包装文件,包含了应用的代码、资源文件和其他相关信息。
反编译APK可以帮助开发人员分析应用的代码结构和功能实现,以及学习其他应用的设计思路和技术实现方法。
下面是一种常用的反编译APK的方法。
步骤1:安装反编译工具步骤2:准备APK文件步骤3:打开终端或命令提示符在你的计算机上打开终端或命令提示符窗口。
如果你使用的是Windows系统,可以按下Win+R组合键,输入“cmd”并按下回车键。
步骤4:进入APK文件所在的目录在终端或命令提示符中输入“cd”命令,然后加上APK文件所在的目录路径,回车进入该目录。
步骤5:执行反编译命令在终端或命令提示符中输入以下命令:apktool d 文件名.apk其中,文件名是你准备反编译的APK文件的文件名。
执行该命令后,apktool将自动解压缩APK文件,并将解压后的文件保存在当前目录。
步骤6:查看反编译结果步骤7:反编译APK的其他方法除了使用apktool之外,你还可以尝试其他的反编译APK的工具。
dex2jar可以将APK文件转换为JAR文件,然后你可以使用Java反编译器对JAR文件进行反编译。
JD-GUI是一个流行的Java反编译器,你可以将JAR文件拖放到JD-GUI的界面中,然后查看反编译后的Java代码。
步骤8:分析和学习通过反编译APK文件,你可以深入了解应用的实现细节、功能实现和资源文件。
你可以借鉴其他应用的设计思路和技术实现方法,提升自己的开发能力。
需要注意的是,在使用反编译工具时,你必须遵守相关法律法规,并尊重其他开发者的知识产权。
只有在合理范围内使用反编译才是合法的,不得用于非法用途。
总结:通过上述步骤,你可以轻松地反编译APK文件。
这个过程可以让你更好地了解应用程序的代码和实现细节,同时也可以为你的开发工作提供参考和借鉴。
但请务必遵守相应法律法规,尊重知识产权。
apktool 用法apktool是一个用于反编译和重新打包Android应用的工具。
它可以帮助开发者分析应用的代码和资源,更好地理解应用的结构和功能。
以下是使用 apktool 的一些基本用法:1. 反编译应用使用命令 `apktool d [apk文件名]` 可以将一个应用反编译为其代码和资源文件。
反编译后的文件可以在指定的目录中找到。
2. 重新打包应用使用命令 `apktool b [反编译后的目录]` 可以重新打包一个应用。
重新打包后的应用可以在指定的目录中找到。
3. 修改应用的代码和资源在反编译后的目录中可以找到应用的代码和资源文件。
开发者可以对这些文件进行修改,并使用 apktool 打包成新的应用。
4. 查看应用的 AndroidManifest.xml 文件使用命令 `apktool d [apk文件名]` 可以将一个应用反编译为其代码和资源文件,并在反编译后的目录中找到AndroidManifest.xml 文件。
这个文件包含了应用的所有信息,包括应用的权限、入口、组件等。
5. 使用 apktool 进行调试在使用 apktool 进行反编译和重新打包应用时,可能会遇到一些问题。
开发者可以通过使用 apktool 的调试命令 `apktool--debug` 来解决这些问题。
6. 使用 apktool 进行签名在重新打包应用后,开发者需要对应用进行签名才能在设备上安装和运行。
使用命令 `apktool sign [apk文件名]` 可以对应用进行签名。
签名后的应用可以在指定的目录中找到。
总之,apktool 是一个非常有用的工具,可以帮助开发者更好地理解和修改 Android 应用。
但是,在使用 apktool 进行反编译和重新打包应用时需要小心,遵守相关法律法规,不要进行非法操作。
APK应⽤程序的解包、修改、编辑、汉化、打包及应⽤第⼆部分:三星闭源系统apk⽂件的处理,汉化和签名在这⼀部分,我们要进⼊实战。
⾸先,利⽤⼀个具体的例⼦来阐述apk⼯具包的使⽤,对apk⽂件进⾏解包、汉化、打包和签名。
然后,我们来对付三星闭源系统的apk程序,达到我们修改、汉化和美化的⽬的。
我们假定所有apk⽂件都是单个独⽴⽂件,不含odex⽂件(在官版ROM中,通常每个apk都分成两部分,第⼀部分是apk,第⼆部分是odex。
将它们合并是另⼀个题⽬,这⾥不作叙述)。
1. 配置框架(Framework)环境在处理APK⽂件时,apktool需要框架⽂件(framework-res.apk)来解码和打包。
apktool已经包含了标准的框架,所以在⼤多数APK⽂件的解包时,不需要另外提供框架⽂件。
但是,某些制造商(例如三星)使⽤了他们⾃⼰的框架⽂件,为了解包,就不得不从⼿机中或从ROM中把框架⽂件(framework-res.apk)提取出来,然后安装到计算机。
安装命令是:apktool if framework-res.apk安装后就会得到:~\apktool\framework\1.apk注意:三星系统(例如:I897)有两个框架⽂件:framework-res.apk和twframework-res.apk。
在使⽤apktool之前,要安装这两个框架⽂件。
安装⽅法同上:apktool if framework-res.apkapktool if twframework-res.apk安装后就会得到:~\apktool\framework\1.apk和~\apktool\framework\2.apk。
许多⼈拿来apktool⼯具包⽤,说解不开包,运⾏出错。
原因是没有配置框架环境。
2. akp⽂件的汉化和修改我⾸先来讲对⼀般的(⾮三星)apk应⽤程序进⾏解包、汉化和打包。
为你们⽅便和叙述⽬的,我在上传的apktool和apk manager⼯具包⾥都带了⼀个⼩的apk应⽤程序SilentBoot_EN.apk。
如果是修改CM的apk很简单,修改原始代码使用命令单独编译该apk 就可。
这篇文章主要讲那该死三星闭源系统是如何在有限的环境下最大化修改你的东西。
本人不是什么高手,只是接触android的时间比较长(从G1就开始用起),爱好收集andorid 历史上比较有代表性的机器,时常爱摆动手机,倒腾ROM,因为个人时间问题,一直没制作完整的作品(我比较懒XD),就连自己使用的ROM还停留在CMbeta3中文化版本。
个人关注aosp比较多点,很高兴我编译的中文版能将CM for i9000 推到大家面前,让更多的I9000用户了解到CM,当然从G1时代开始刷CM的兄弟们自然会知道CM的优秀。
CM发展至今,已经不仅仅是手机ROM,他代表了一种精神,开源和共享(国内论坛有多少?),以及无所不能——这是我欣赏和推崇的。
如果将CM放大到无限的时间和个人团体集合,android 会支持理论上一切可以运行它的设备。
一:基本准备!准备工具:Android SDKjava,下载适合您系统的版本。
您需要的是apktool 或者apk manager 4.9(貌似最新版本了)。
推荐用apk manager 4.9,下面主要介绍该工具使用方法。
以上工具Windows和Linux下都有。
三星I9000 FROYO 系统应用软件在 /system/app 同大多数Android系统一样。
但注意三星有着自定义的framework,在 /system/framework/twframework-res.apk。
如果您要修改三星的system app就需要用到他。
首先我们要提取出系统软件。
有两种方法,第一刷完机,获取root权限之后用以下命令:1.windows和linux下面的命令同样:2.adb pull /system/ <your path:>3.//将手机system目录copy到您电脑的某个路径中复制代码或者解压缩三星官方刷机包:挂载factoryfs到某路径:然后拷贝所有文件。
破解apk教程破解APK教程(500字)APK是Android平台上常见的应用程序格式,而破解APK则是指通过修改APK文件的代码或数据,使得原本有限的功能得到解锁或扩展。
破解APK的过程需要一定的编程技术和知识,下面将介绍一个简单的破解APK的教程。
首先,我们需要一个APK文件,可以通过从网上下载一款需要破解的应用程序得到。
然后,我们需要一个反编译工具,比如常用的apktool。
将APK文件拖动到apktool的执行文件上,即可对其进行反编译。
接下来,我们得到的是一个包含源代码和资源文件的文件夹。
我们可以使用任何文本编辑器来修改源代码,但是通常使用Android Studio这样的IDE会更便捷。
打开Android Studio后,点击“Open an Existing Project”并选择反编译得到的文件夹。
稍等片刻,我们就可以在Android Studio中查看到整个项目的结构。
很多APK破解的重点在于修改源代码,如跳过登录验证、解锁高级功能等。
我们需要仔细查找代码中的关键逻辑,常见的位置有MainActivity或者LoginActivity等入口类。
找到我们需要修改的功能代码后,我们可以根据实际需求进行修改。
在修改代码过程中,我们需要注意保留原有的代码逻辑,避免引发其它错误。
此外,可以通过注释掉某些代码来暂时关闭某些功能,以方便我们测试修改的效果。
修改完代码后,记得保存文件。
除了修改代码,我们有时还需要修改资源文件,如图片、布局等。
可以使用图像处理软件来修改需要的图片,然后替换对应的文件即可。
布局文件的修改可以通过简单的XML编辑器来实现。
最后,我们需要重新打包APK并签名,使我们的修改生效。
在Android Studio中,点击菜单栏的“Build”选项,选择“Build Bundle(s)/APK(s)”,然后选择“Build APK”。
稍等片刻,我们将得到一个新的APK文件。
新的APK文件完成了我们的破解操作,但需要注意的是,在实际使用中破解APK可能涉及到违法行为,且可能会损害原应用程序的开发者的合法权益,这是需要谨慎考虑的。
反编译jar包,⾃定义修改后使⽤们可能都会遇到这种情况:java⼯程中需要使⽤某个jar包,⽽且需要对其中的某个功能进⾏修改,或者重写某个⽅法。
⾯对这样的问题需要我们:1.反编译jar包,得到java源代码。
2.修改,添加新代码。
3.将修改的java⽂件编译成class⽂件,然后再次打包成jar包,引⽤。
看⼀个实际应⽤的例⼦吧:某司⽼系统安全检查发现,系统的struts2受到安全威胁,需要修补S2-016、S2-017漏洞。
⽹上有解决⽅案:⽅案介绍: 重写struts2 DefaultActionMapper的handleSpecialParameters⽅法,增加action、redirect、redirectAction等参数的过滤。
此⽅法可修补S2-016、S2-017漏洞。
操作步骤: 2.1 新建com/website/struts2/MyDefaultActionMapper.java,代码如下: 2.2 复制MyDefaultActionMapper.class 到 /com/website/struts2/⽬录。
2.3 ⽤struts.xml添加如下代码: 2.4 重启服务器。
----------------------接下来我们开始实施-------------------------解决⽅法:1.使⽤jd-gui反编译⼯具,得到struts2-core-2.1.8.1.jar的源码。
file->save all resources,将源码保存到桌⾯上。
2.在myeclipse新建java⼯程取名为testPro将上⾯org⽂件夹拷贝到src⽬录中。
接下来,我们修改,添加代码:在⾥⾯新增:MyDefaultActionMapper.javapackage org.apache.struts2.dispatcher.mapper;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.config.Configuration;import com.opensymphony.xwork2.config.ConfigurationManager;import com.opensymphony.xwork2.config.entities.PackageConfig;import com.opensymphony.xwork2.inject.Container;import com.opensymphony.xwork2.inject.Inject;import com.opensymphony.xwork2.util.logging.Logger;import com.opensymphony.xwork2.util.logging.LoggerFactory;import java.util.ArrayList;import java.util.Collections;import java.util.HashSet;import java.util.List;import java.util.Map;import java.util.Set;import java.util.regex.Matcher;import java.util.regex.Pattern;import javax.servlet.http.HttpServletRequest;import ng3.StringUtils;import org.apache.struts2.RequestUtils;import org.apache.struts2.util.PrefixTrie;public class MyDefaultActionMapper extends DefaultActionMapper {public void handleSpecialParameters(HttpServletRequest request, ActionMapping mapping) {Set uniqueParameters = new HashSet();Map parameterMap = request.getParameterMap();//for (Iterator iterator = parameterMap.keySet().iterator(); iterator.hasNext();) {for (Object o : parameterMap.keySet()){//String key = (String) iterator.next();String key = (String)o;if ((key.endsWith(".x")) || (key.endsWith(".y"))) {key = key.substring(0, key.length() - 2);}if ((key.contains("redirect:")) || (key.contains("redirectAction:")) || (key.contains("action:"))) {return;}if (!uniqueParameters.contains(key)) {ParameterAction parameterAction = (ParameterAction) this.prefixTrie.get(key);if (parameterAction != null) {parameterAction.execute(key, mapping);uniqueParameters.add(key);break;}}}}}新增代码后发现⼀线飘红,接下来我们就给项⽬添加缺少的jar包(可以加在lib⽂件夹下,然后在Configure Build Path中引⼊),让代码不报错(不飘红),最终效果(不能有⼀个错,否则编译通过不了):3.在myeclipse中编译项⽬,⽣成相应的class⽂件,然后添加到jar包中。
Android ROM美化教程,透明等反编译修改的方法透明下拉栏1.提取你的systemui.apk,反编2.找到\res\layout\status_bar_tracking.xml文件,搜索“View android:background”,将其等号后面改成"@drawable/status_bar_background"3.回编systemui.apk4.将新apk中的status_bar_tracking.xml文件替换到老apk中这样,你的下拉栏就变成了status_bar_background.png这张图片了,修改一张透明的status_bar_background.png扔进systemui.apk中替换原文件就好了。
在用压缩方式打开替换好的APK、直接把res拖到桌面,打开drawable-hdpi,quickpanel_quick_settings_background.png这个和quickpanel_title_background.9.png这个还有title_bar_portrait.9.png这个要改成透明或半透明都可以不一定名称都一样但是方法都一样,你们进去了就知道 statusbar_background.9.png这个是状态栏直接该透明就OK记得你改的图片大小要一样{重要}透明状态栏2.3.6看其他无视同样是修改systemui.apk。
1.反编后找到smali\com\android\systemui\statusbar\StatusBarService.smali文件2.找到new-instance v0, Landroid/view/WindowManager$LayoutParams;const/4 v1, -0x1const/16 v3, 0x7d0const/16 v4, 0x48const/4 v5, 0x2修改为new-instance v0, Landroid/view/WindowManager$LayoutParams;const/4 v1, -0x1const/16 v3, 0x7d0const/16 v4, 0x48const/4 v5, -0x33.回编4.替换classes.dex5.修改一张statusbar_background.9.png图片,处理成半透明,替换效果图全局背景教程提取完后打开“framework-res.apk\res\values\在用笔记本打开styles.xml文件按“Ctrl+F”打开查找,在“找内容”查上写入<item name="windowBackground">@drawable/screen_background_dark</item>把找到的那句改成下面这句<item name="windowBackground">@drawable/wjj_qjbg</item>继续查找<style name="Widget.ListView" parent="@style/Widget.AbsListView">得到下面这段<style name="Widget.ListView" parent="@style/Widget.AbsListView"><item name="listSelector">@drawable/list_selector_background</item><item name="cacheColorHint">?colorBackgroundCacheHint</item> ----这句<item name="divider">@drawable/divider_horizontal_dark_opaque</item></style>将上面那句<item name="cacheColorHint">?colorBackgroundCacheHint</item>换成<item name="cacheColorHint">@color/transparent</item>第三步:把一张480*800的图片命名为:“wjj_qjbg”记得是PNG格式不然就悲催了放入framework-res.apk\res\drawable-hdpi然后封包接下来就要用压缩方式打开之前没改过的framework-res.apk。
Androidapk反编译基础(apktoos)图⽂教程很久有写过⼀个⼴⼯图书馆主页⼀个类爬⾍的demo(因为没接⼝,只能扒取静态⽹页),实现⼀些图书馆系统的⼀些功能。
但最近发现图书馆系统在html页⾯上做了⼿脚,⼀页html 页⾯中嵌⼊了⼏千⾏的注释,并有了⾃⼰的App,应该是为了增加扒取的流量成本来防⽌别⼈去扒取⽹页,不过加注释这⼿段就不敢恭维了,内⽹访问速度还⾏,但外⽹访问的话体验很差的。
如下图:⼀堆注释,导致⼀个⽹页要2MB主页上的APP,必然是⽤了图书馆的后台接⼝和服务器交互的,从⽽想试试⽤反编译的⼿段来看看APP使⽤了什么接⼝。
(另外更简单可以通过来给Android⼿机抓包分析其接⼝,再⽤Wireshark来分析tcp包,不过你想要知道全部接⼝的话,可能需要⼀个个接⼝去调⽤,会⽐较⿇烦,采⽤反编译,可能集中在⼀个类中找到这些接⼝)。
解压缩APKTool,并把要反编译的APK放⼊⽬录中反编译:通过CMD进⼊上⾯的⽬录,执⾏命令: apktool decode ZhaoBenShu.apk outdir稍等⽚刻完成反编译,反编译后的⽂件会在outdir⽬录下。
---outdir⽬录结构res :资源⽂件,跟adnroid⼯程⽬录下的res基本⼀样,各种UI图⽚ XML布局⽂件 values xml⽂件(多了⼀个public.xml,有各个资源的id号(R.java中的id))smail:这个是重点⽂件夹,⾥⾯都是smail格式⽂件,是Dalvik虚拟机执⾏的操作码(Dalvik opcodes),这些操作吗有⾃⼰的语法,如果有学过JNI的话,这些语法还是⽐较容易看懂和理解的。
AndroidManifest.xml:Android⼯程下的AndroidManifest.xmlapktool.yml:⽤于重打包。
smail语法:(全部语法请)smail中的数据类型签名跟java中的是⼀样的,如下。
APK文件的解包打包和修改相信每位玩机的人对APK文件都不陌生。
你可能每天都与APK文件打交道,无论是安装和卸载有用的应用工具、插件、好玩的游戏等等。
你可曾知道这些每天都伴随着你的APK文件是什么吗?怎样对它们作些修改呢?比如说:对英文版进行汉化、修改功能、修改文字描述、去掉广告等等。
本文介绍APK的基本知识、结构、APK文件的解包、打包及签名,以及对APK文件的常规修改。
1.1.1.1.APK文件简介APK是Android Package的缩写,即即Android application package文件或Android安装包。
每个要安装到Android平台的应用都要被编译打包为一个单独的文件,后缀名为.apk。
APK文件是用专业软件eclipse编译生成的文件包,其中包含了应用的二进制代码、资源、配置文件等。
通过将APK文件直接传到Android手机中执行即可安装。
APK文件其实就是zip格式,但其扩展名被改为apk,用解压软件可以直接打开。
通过WinRAR或UnZip解压后,你会看到有几个文件和文件夹。
一个典型的APK文件通常有下列内容组成:AndroidManifest.xml程序全局配置文件classes.dex Dalvik字节码resources.arsc编译后的二进制资源文件META-INF\该目录下存放的是签名信息res\该目录存放资源文件assets\该目录可以存放一些配置文件下面对这些文件和目录做些基本的注释和介绍。
.AndroidManifest.xml该文件是每个应用程序都必须定义和包含的文件,它描述了应用程序的名字、版本、权限、引用的库文件等等信息。
需要解包后才能加以阅读。
.classes.dex文件classes.dex是java源码编译后生成的java字节码文件。
dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。
涉及内容
apk反编译
代码修改
打包
重启签名
需要的工具
jdk:必须的
baksmali:classes.dex反编译为smali格式(文本文件,可修改)
smali:smali格式编译打包为classes.dex
但由于smali格式类似汇编,比较难阅读,所以用dex2jar进行辅助
dex2jar:classes.dex转为jar包
jdgui:jar反编译并阅读
以上工具可以在 / 下载
好了,顺序就是把apk用zip解开,里面的classes.dex分别用baksmali处理为smali,用dex2jar处理成jar,然后用jdgui看代码,找好java文件中要改的位置后,在smali里找对应的位置修改,改完了用smali再编译为classes.dex,覆盖原来apk里的同名文件,最后重新签名。
注意安装时要先删除原来手机里的版本,因为签名不同了,我第一次再这里卡了好久。
以“捕鱼达人海底捞”为例
下载这个游戏的apk,fishing_joy_1.apk,和工具放在一起
用zip解开fishing_joy_1.apk
copy classes.dex到baksmali的同一目录
用baksmali处理为smali
java -jar baksmali-1.2.6.jar -x classes.dex
得到out目录,里面是smali文件
用dex2jar处理classes.dex为jar包
dex2jar-0.0.7.10-SNAPSHOT\dex2jar.bat classes.dex 得到classes.dex.dex2jar.jar
这时我们的工作目录下面是这样
用jdgui打开classes.dex.dex2jar.jar
好了,可以看代码,但还不能直接修改,需要对比着来修改smali文件
比如我们通过对比找到控制鱼被打到几率的代码在FishLayer.smali
Java代码
1.invoke-static {v4, v5}, Lcom/sg/android/fish/fish/FishFactory;-
>getProb(II)D
2.
3.move-result-wide v4
4.
5.invoke-static {}, Ljava/lang/Math;->random()D
6.
7.move-result-wide v6
8.
9.const-wide/high16 v8, 0x4059
最后的0x4059会与random相乘,如果比getProb方法计算的结果小,判断为鱼可以打下来
改为0x0,每条鱼都是必中
改好后,用java -jar smali-1.2.6.jar -o classes.dex out
得到修改后的classes.dex,用这个文件替换fishing_joy_1.apk中的同名文件但这个apk是不能用的,还没有进行重新签名
先用keytool生成keystore
keytool -genkey -keystore mykeystore -alias mykeystore -validity 999 把apk中的META-INF删除,再用jarsigner 签名
jarsigner -verbose -keystore mykeystore -signedjar fishing_joy_1_signed.apk fishing_joy_1.apk mykeystore
先卸载原来手机中安装的这个游戏,再用fishing_joy_1_signed.apk安装
最后工作目录是这个样子。