Ⅰ 怎么反编译settings.apk
事项:1.反编译系统文件必须是从官方提取的.APK文件。(因为APK只能实现一次反编译,就是说如果这个文件已经反编译过了,就不能再次反编译,就算你反编译了也不能回编译。)2.编译工具论坛上很多可以自己搜索下载,存放的位置文件夹最好不带中文。3.覆盖原文件时一定要切记,先移动到系统文件夹下,然后修改权限,然后在覆盖原来APK(不然会怎么样,我相信大家懂的{:soso_e144:} )4.就算附件中有反编译工具也要自己搭建好java环境(因为一切反编译的工具都是建立在JAVA环境的基础上的)开始教程:1.关于JAVA、环境变量,请搜索教程帖2.环境变量设置成功后,就是提取你手机上的Settings.apk。3.进行反编译,(我想有一定美化基础的应该很会简单的),反编译后得到Settings文件夹打开然后\res\values-zh-rCN\找到strings文件,右键打开,打开方式选择看你习惯。 修改好以后选择保存,回编译。回编译好的APK用鼠标右键单击 选择用好压打开然后将resources.arsc 拖拽出来。然后在把JU1.1的Settings.APK提取出来也用好压打开,将刚才拖拽的resources.arsc 文件在拖拽到JU得APK中。然后点覆盖。然后在将其移动到SYSTEM\APP里 就OK了(记得修改权限)这个需要在手机上操作打开RE管理器,打开里面的system,找到build.prop.长按弹出对话框,选择:使用文本编辑器打开(右上角要改为读写哦)第四行的:ro.build.display.id= 等号后面就是你想要输入的不要过长哦~第八行的:ro.build.version.release= 同上修改完成后,点击左虚拟键,也就是设置键,选择:保存并退出。你会在build.prop下面发现它的备份文件,删除,重启,OK~全部完成~
Ⅱ 如何实现APK的反编译得到APK的源码
最新的反编译不用此方法, 有最新的一键自动反编译工具:这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习的态度,不过好像通过这种方式也可以去汉化一些外国软件。注:本Android反编译教程,在Windows7-Ultimate-64bit操作系统上,测试通过!下述所需的反编译工具包 下载一、反编译Apk得到Java源代码首先要下载两个工具:dex2jar和JD-GUI前者dex2jar是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。以下是下载地址:dex2jar:http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zipJD-GUI:http://laichao.googlecode.com/files/jdgui.zip具体步骤:首先将apk文件,将后缀改为zip,解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的;解压下载的dex2jar,将classes.dex复制到dex2jar.bat所在目录。在命令行下定位到dex2jar.bat所在目录(在DOS命令下CD 目录)运行dex2jar.bat classes.dex生成classes.dex.dex2jar.jar生成jar文件的截图如下:运行JD-GUI(jd-gui.exe),打开上面生成的jar包,即可看到源代码了HelloAndroid源码(编译前的apk源码对照)如下:二、反编译apk生成程序的源代码和图片、XML配置、语言资源等文件如果是汉化软件,这将特别有用。首先还是下载工具,这次用到的是apktool下载地址:http://code.google.com/p/android-apktool/downloads/list下载:apktool1.4.1.tar.bz2 和 apktool-install-windows-r04-brut1.tar.bz2(两个包都下载)具体步骤:将下载的两个包解压到同一个文件夹下,应该会有三个文件:aapt.exe,apktool.bat,apktool.jar在命令行下定位到apktool.bat文件夹,输入以下命令:apktool d C:\*.apk C:\*文件夹,如下图:命令行解释:apktool d [apk文件 ] [输出文件夹]反编译的文件如下(AndroidManifest.xml为例):特别注意:你要反编译的文件一定要放在C盘的根目录里(其实不用放在C盘根目录也行)例如:在D盘目录D:\apktool1.4.1cd /d D:\apktool1.4.1 //切换到D盘目录,包含HelloAndroid.apk以及aapt.exe,apktool.bat,apktool.jar三个文件apktool.bat d -f HelloAndroid.apk HelloAndroid // apktool反编译命令,注意 d和 -f 的写法将反编译完的文件重新打包成apk,很简单,输入apktool b c:\***文件夹(你编译出来文件夹)即可,命令如下:这个主意你文件所在盘打包apk后的文件在目录C:\HelloAndroid下,生成了两个文件夹:builddist其中,打包生成的HelloAndroid.apk,在上面的dist文件夹下,Ok最后,再介绍一款刚出来的反编译工具 Androidfby ,它是一款对上述步骤进行了封装的图形界面工具,下载地址但是,针对部分签名的apk,无法实现反编译,但本博客方法则仍然可以反编译成功!仅供参考使用另外,作为应用开发者,肯定不希望自己的代码被反编译的,下一遍博客将讲述如何通过混淆代码防止被别人反编译Android如何防止apk程序被反编译作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来。Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-sdk-windows\tools\下面多了一个proguard文件夹proguard是一个java代码混淆的工具,通过proguard,别人即使反编译你的apk包,也只会看到一些让人很难看懂的代码,从而达到保护代码的作用。下面具体说一说怎么样让SDK2.3下的proguard.cfg文件起作用,先来看看android-sdk-windows\tools\lib\proguard.cfg的内容:[html] view plainprint?1. -optimizationpasses 5 2. -dontusemixedcaseclassnames 3. – 4. -dontpreverify 5. -verbose 6. -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* 7. 8. -keep public class * extends android.app.Activity 9. -keep public class * extends android.app.Application 10. -keep public class * extends android.app.Service 11. -keep public class * extends android.content.BroadcastReceiver 12. -keep public class * extends android.content.ContentProvider 13. -keep public class * extends android.app.backup.BackupAgentHelper 14. -keep public class * extends android.preference.Preference 15. -keep public class com.android.vending.licensing.ILicensingService 16. 17. -keepclasseswithmembernames class * { 18. native <methods>; 19. } 20. 21. -keepclasseswithmembernames class * { 22. public <init>(android.content.Context, android.util.AttributeSet); 23. } 24. 25. -keepclasseswithmembernames class * { 26. public <init>(android.content.Context, android.util.AttributeSet, int); 27. } 28. 29. -keepclassmembers enum * { 30. public static **[] values(); 31. public static ** valueOf(java.lang.String); 32. } 33. 34. -keep class * implements android.os.Parcelable { 35. public static final android.os.Parcelable$Creator *; 36. } 从脚本中可以看到,混淆中保留了继承自Activity、Service、Application、BroadcastReceiver、ContentProvider等基本组件以及com.android.vending.licensing.ILicensingService,并保留了所有的Native变量名及类名,所有类中部分以设定了固定参数格式的构造函数,枚举等等。(详细信息请参考<proguard_path>/examples中的例子及注释。)让proguard.cfg起作用的做法很简单,就是在eclipse自动生成的default.properties文件中加上一句“proguard.config=proguard.cfg”就可以了完整的default.properties文件应该如下:[html] view plainprint?1. # This file is automatically generated by Android Tools. 2. # Do not modify this file — YOUR CHANGES WILL BE ERASED! 3. # 4. # This file must be checked in Version Control Systems. 5. # 6. # To customize properties used by the Ant build system use, 7. # "build.properties", and override values to adapt the script to your 8. # project structure. 9. 10. # Project target. 11. target=android-9 12. proguard.config=proguard.cfg 大功告成,正常的编译签名后就可以防止代码被反编译了。反编译经过代码混淆的apk得到的代码应该类似于下面的效果,是很难看懂的:如果您使用的是2.3之前的SDK版本也没关系,把上面的proguard.cfg文件复制一份放到项目中,然后进行相同的操作即可
Ⅲ 怎么使用改之理软件反编辑APP
你好,建议使用小米人APK改之理:小米人APK改之理是一款可视化的用于修改安卓Apk程序文件的工具,集成了ApkTool、Dex2jar、JD-GUI等Apk修改工具,集Apk反编译、Apk打包、Apk签名,支持语法高亮的代码编辑器,基于文件内容的关键字(支持单行代码或多行代码段)搜索、替换引擎,打造成可视的、一体化的APK修改工具,从而大大简化Apk修改过程中的繁琐操作,修改更轻松。APK简单认识:APK是AndroidPackage的缩写,即Android安装包(apk)。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。apk文件和sis一样,把android sdk编译的工程打包成一个安装程序文件,格式为apk。APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接,和Windows Mobile中的PE文件有区别。在Android平台中dalvik vm的执行文件被打包为apk格式,最终运行时加载器会解压然后获取编译后的androidmanifest.xml文件中的permission分支相关的安全访问,但仍然存在很多安全限制,如果你将apk文件传到/system/app文件夹下会发现执行是不受限制的。安装的文件可能不是这个文件夹,而在android rom中系统的apk文件默认会放入这个文件夹,它们拥有着root权限。
Ⅳ apk反编译/回编译
再次记录一次apk反编译/回编译过程,链接失效请留言,会及时更新。
参考博客: https://blog.csdn.net/w327918069/article/details/82761437
首先,我们需要一个apk,下图是Android Studio编写并打包的一个apk。
其实apk就相当于一个zip压缩包,通过 WinRar 工具可以对其解压缩,像这样:
此时,祭出我们的神器—-> apktool ,当当当当~~~~~~~。 一行命令进行apk反编译: apktool d -r app-debug.apk 一定要加入参数 -r ,不然后面回编译回报错。
apk反编译到此结束。
回编译就是通过 apk反编译 生成的目录文件转换成一个apk。 十分简单的一行命令: apktool b app-debug
此时安装apk到手机无法安装成功,还需要对apk进行签名才能安装。
1.生成key.keystore keytool -genkey -alias key.keystore -keyalg RSA -validity 30000 -keystore key.keystore
可以看到key.keystore已经生成。
2.对apk进行签名 可用于没有签名和已经签名的apk,再次签名。
jarsigner -verbose -keystore [keystorePath] -signedjar [apkOut] [apkin] [alias]
命令格式及参数意义:
-verbose -> 输出签名过程的详细信息
-keystore [keystorePath] -> 密钥的库的位置
-signedjar [apkOut] -> 签名后的输出文件名
[apkin] -> 待签名的文件名
[alias] -> 证书别名 jarsigner -verbose -keystore key.keystore -signedjar app-debug_signed.apk app-debug.apk key.keystore
回编译完成。
Ⅳ 如何反编译一个app
下载apktool所需文件:a、 apktool1.5.2.tar.bz2 b、apktool-install-windows-r05-ibot.tar.bz2 (windows系统)解压刚刚下载的文件,并将解压的文件放入C:\Windows目录下启动控制台,输入apktool,回车可查看到apktool工具常用指令新建一个文件夹,用于存放apk及待解压的文件,这里笔者将文件夹建在D:\apk目录,同时放入用于测试的android app包(test.apk)控制台输入:apktool d D:\apk\test.apk D:\apk\test 进行反编译操作中句话中“D:\apk\test.apk”指apk存放位置,“D:\apk\test”指反编译后文件存放的位置 反编译成功之后,进入D:\apk\test文件目录可以查看到反编译后的文件
Ⅵ 安卓app360加固怎么反编译
1 对比
上传demo进行加固,解包后对比下原包和加固包,发现加固包在assets文件夹下多了libjiagu.so,libjiagu_x86,lib文件夹下多了libjiagu_art.so,同时修改了dex文件和AndroidManifest文件
打开manifest文件,看到xxx加固对Application标签做了修改,添加了壳入口,也就是我们反编译后看到的StubApplication.smali这个文件。
相比于之前版本的加固,自从1.x.x.x加固版本之后,多了几次反调试,使得动态难度稍微增大了一些,不过针对脱壳机脱壳,再多了反调试也是无用。或者通过修改系统源码,也能达到消除反调试的作用。
2 动态调试
(1)把app安装到手机,以调试模式打开app
(2)以shell模式root权限打开IDA的android_server监听
(3)tcp转发
(4)打开IDA,修改配置为在进程开始时下断
(5)搜索到进程后jdwp转发,pid值即为我们进程号,并在命令行下附加。
成功附加后,可以下段了,打开Debugger Option
我们选择在线程开始和库加载时下断,修改成功后,jdb附加,点击运行
程序会断在elf头处,按下G键,搜索mmap,在mmap函数的段首和断尾下段
F9运行,来到断尾时F8单步,
来到此处时,在 BLunk_5C999C2C下断,F9一下,F7跟进去
跟进去今后在BLX LR处进行下断,此处就是进行反调试的地方,原理依然是获取TracePid的值判断当前是不是处于调试状态,建议第一次调试的人在fgets和fopen处下断,再f7跟进此调用就可以看到TracePid的值了。
跟进去之后,我们直接把方法移到最下方,就可以看到kill符号了,这就是杀进程的地方,如果当前处于调试状态,则直接结束进程。
我们在此函数的所有cmpR0,#0处下断,F9一下后即断在断点处,观察寄存器窗口的R0值,实质就是当前的TracePid的16进制的值
不确定的可以使用cat /proc/pid/status进行对比一下,我们直接把R0置0,右键选择Zero Value即可清0,继续F9
我们看到程序又来到了mmap处,继续f9
当继续断在调用反调试功能的方法时,继续F7跟进,依然在所有的cmp R0,#0处下断,断下后把R0清0后继续F9运行
目前的规律是,调用BLXLR的第一次,第二次和第四次是进行反调试判断的,第三次并不影响,可以直接f9跳过去,三次反调试搞定后,就可以愉快的F9运行并观察堆栈窗口了
当看到出现如下所示时:
说明壳已经开始解密并释放dex文件了,我们直接F8单步十几步,最后F9一下就可以看到我们需要的dex头了
直接脚本mp出来即可,最后把libjiagu的所有文件删除,并修复下Application标,如果存在则修复,不存在删除即可