安卓逆向课程apk反编译与回编译
1. 安卓逆向——如何修改APP包名实现应用分身
齐天大圣孙悟空是家喻户晓的神话传说名人,大家都知道他有一个很强大的技能——拿出一根猴毛“biu”一吹实现分身。
那么我们程序猿也和咱们的齐天大圣是同类(开个玩笑),程序猿怎么实现分身呢?我们拔一根头发吹肯定是不好使的……那就是通过修改APP的包名来实现应用分身。也就是说在同一个设备上可以打开两个或多个相同的APP。
一.如何修改APK的包名
那么如何修改apk的包名呢?我们以“薯仔视频为例”来进行一个分析。首先,找到“工程管理器”,打开工程管理器进入界面,点开薯仔视频的下行文件数据
里面有“manifest”这样一个标签,找到这个标签里面的一个“package”属性,这个值就是我们要找到应用程序的包名
第二步,把“package”属性改为“hou”或者“123”等等都可。
这个值我们可以通过删减几个字母或者是任意添加几个字母或数字来进行修改,切记注意只能使用添加或删减数字和字母,不可以用汉字!
建议通过“添加数字或字母实现”,删除容易把握不准,当然删除以后一定要记得保存。 然后点击“回编译”按钮,进行回编译过程
二.如何修改内容提供者
启动模拟器,进行应用安装,然后把我们“回编译”好的拖到模拟器里面
发现安装失败,提示“存在同名的内容提供者”。 错误的原因由于我们只修改了包名,没有修改内容提供者。 那么如何修改“内容提供者”?
搜索结束后显示我们 需要修改的是“provider”里面有个“android;anthorities”的值
修改的方法同修改“package”值的属性是一样的,可以添加或删减字母或者是数字(绝对不能是汉字)
将搜索到的结果进行逐一全部修改,修改完成后千万不能忘记保存
完成之后找到其所在的目录进行安装,方法同样,直接拖进模拟器里面即可
※这里补充一点:有的apk由于没有内容提供者,就只需要一步到位——修改包名就可以直接实现应用分身了。
三.程序无法运行安装及对应解决方案
那么在什么情况下会导致程序无法运行以及安装,它们对应的解决方案是什么呢?
Q 1 · 只修改apk的包名会引发内容提供者冲突
解决方案:
修改配置文件中所有内容提供者的标签“provider”里面“android:authorities”属性的值
Q 2· 应用程序分身的签名信息不同导致无法运行
解决方案:
使用相同的签名工具对所有分身进行统一的签名
Q 3· 有些apk在内部使用的包名只修改包名会导致程序崩溃
解决方案:
全局搜索应用程序的包名查看搜索结果,如果是字符串就进行一个替换,将原有的字符串修改为修改后的包名否则不进行替换
这就是如何修改apk的包名实现应用程序分身的具体方法了,在实际操作中可能会遇到更多的小细节问题,我们要具体问题具体分析。总之多动手多思考多实操,安卓逆向没有什么太难的。当然分享的相关经验,如果有哪处不妥也欢迎在评论区回复讨论或者私聊交流哈。
2. 反编译是什么意思
计算机软件反向工程(Reverse engineering)也称为计算机软件还原工程,是指通过对他人软件的目标程序(比如可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,
某些特定情况下可能推导出源代码。反编译作为自己开发软件时的参考,或者直接用于自己的软件产品中。
(2)安卓逆向课程apk反编译与回编译扩展阅读
反编译是一个复杂的过程,反编译软件有:
1、SWF相关的反编译程序
Action Script Viewer
第一个也是最强大的商业SWF反编译工具,同类产品中,它的AS代码反编译效果最好,SWF转Fla工程重建成功率最高。
2、Android相关的反编译程序
SMALI/BAKSMAL
SMALI/BAKSMALI是一个强大的apk文件编辑工具,用于Dalvik虚拟机(Google公司自己设计用于Android平台的虚拟机)来反编译和回编译classes.dex。其语法是一种宽松式的Jasmin/dedexer语法,而且它实现了.dex格式所有功能(注解,调试信息,线路信息等)。
3、python相关的反编译程序
uncompyle2
uncompyle2可以直接转化为十分完美的python源码,并可以将反编译后的源码再次生成字节码文件。
参考资料来源:网络-反向编译
3. 什么叫反安装和反编译
以上回答都正确
专业一点的说法
反安装就是删除、卸载,安装的英文是install反安装的英文是unistall,英文中un前缀是“反”的意思,所以翻译成中文叫做反安装。
反编译
计算机软件反向工程(Reversepengineering)也称为计算机软件还原工程,是指通过对他人软件的目标程序(可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,作为自己开发软件时的参考,或者直接用于自己的软件产品中。
4. 有没有反编译工具,可以把APK完全反成一个android项目的 , 这个android逆向助手只
我可以让你看见项目的源码,但是不知道怎么才能将源码放到eclipse中进行运行!~~我试了好多次,都不成功,导入工程后总是会出错,不知道是我哪里设置的和源码中设置的不一样!~~
方法是:第一步:你先把下载的包的后缀名改成.zip
第二步:到网上搜索dex2jar,下载一个,解压到电脑磁盘中
第三步:打开你改完后缀名的.zip文件,将其中的.dex文件解压出来,拷贝到dex2jar这个文件中,和lib文件夹放在同文件下
第四步:进入cmd命令,然后用cd 命令进入到dex2jar这个文件中,我的是这样的cd C:\android反编译工具\dex2jar-0.0.9.15\dex2jar-0.0.9.15,然后在执行dex2jar classes.dex这个命令,等待一会,反编译好了后
第五步:到网上搜索jd_gui,然后下载一个解压到磁盘,打开它然后点打开文件,找到刚刚反编译好的那个文件夹,即dex2jar那个文件夹中找.jar文件,打开它就能看到源码了!~~~
其它的资源文件什么的就在刚刚你改完的那个zip文件中有。
不过你也可以将.apk文件再反编译回来,在看资源和Androidmanifest.xml文件!~~~这个用到apktool,这个用起来挺简单的,你可以到网上搜索一下!~~~