Android破解之Lic文件加密程序(首例)
我不会写Android,这是我第一个破解Android的例子,耗时接近一天,希望大神不要见笑!
本程序为商业软件,不便发布APK程序。
不要给我发消息,我不得回,有问题,直接回帖就可以了。
准备工作
在开始之前,要进行以下准备工作:
(1)安装JDK,至于版本,自己选择吧,目前我是用JDK1.6版,可以去官网下载安装,并进行环境配置;
(2)安装模拟器,APK软件要运行测试,需要环境,模拟器是个好东西,我用的是海马玩模拟器,不知道行不行;
(3)APK编辑器下载,现在我还是工具党,只能依靠工具,我用的是APK改之理,我并不知道为什么要取这么一个名字。
至于,这三个软件 ,哪个版本相互之间最搭配,现在我还不知道,只能在后面学习过程中总结发现。
限制测试
现在进入正题,在查看、编译APK之前,得让原版程序在模拟器上运行一下,一方面,可以检查apk文件是否有效,我有很多小伙伴经常拿着有问题的数据在那里测试,为了莫名的错误百度都用烂了;另一方面,可以看看软件到底有什么限制。下面以默认账户登陆,然后出现了"此硬件设备未授权!"的错误信息。其实,这个软件需要放置一个lic许可文件在根目录下,但我们没有这个lic许可文件……

反编译程序
将apk程序载入APK改之理3.2版,出现以下错误,果断换了2.5版,就成功进行反编译了。

注意,文件名不能有中文,不然,无法进行正常反编译。

搜索关键
下面是主界面,左边目录树是项目的文件,中间上面是主要视图窗体,中间下面是日志窗口,右边是搜索面板。现在我得搜索一下我们的重要线索"此硬件设备未授权",在右边的搜索面板没有找到任何结果!陷入了僵局……,注意,这里的代码并不是JAVA代码,而是一种叫Smali的语言,不是那么好理解,因为跳转比较多,有点让人头痛!要想看懂并修改这些代码,其语法可参考文章末尾的链接。

但后来发现,Smali中的字符串是Unicode编码,于是,复制了一段就可以转换成汉字。


后来发现,可以看到JAVA源代码,打开任意*.smali文件,在编辑工具栏,打开JAVA源码即可用;在这里面就可进行中文搜索了,现在找到了关键位置。

分析代码
由于打码非常麻烦,所以就不分析怎么具体修改Smali代码了,下面是JAVA源码,主要是判断i值,在Smali语法中,if-nez表示不等于0……,if-eqz表示等于0……

编译程序
修改完毕后,保存,菜单栏"编译"-"编译生成",即可编译生成程序。

如果出现签名不成功,菜单栏"工具"-"配置与选项",修改签名工具为jarsigner尝试。

运行测试
在模拟器上安装测试使用,如果成功,再拿到平板上进行实地测试。当然,不要看这文章一下子就写出来,在模拟上的测试,不止一次两次的,多次尝试,总会成功!

参考:
Smali语法学习与DEX文件详解:http://www.apkbus.com/android-181396-1-1.html
Android apk反编译基础:http://www.jb51.net/softjc/119036.html
apk反汇编之smali语法:http://bbs.pediy.com/showthread.php?p=1117963
Apk改之理(Apk IDE)使用常见问题:http://bbs.angeeks.com/thread-2617106-1-1.html
Android破解之Lic文件加密程序(首例)的更多相关文章
- 【Java】Swing+IO流实现一个简单的文件加密程序(demo版)
留着参考 EncrytService package com.my.service; import java.io.File; import java.io.FileInputStream; impo ...
- Android版本的"Wannacry"文件加密病毒样本分析(附带锁机)
一.前言 之前一个Wannacry病毒样本在PC端肆意了很久,就是RSA加密文件,勒索钱财.不给钱就删除.但是现在移动设备如此之多,就有一些不法分子想把这个病毒扩散到移动设备了,这几天一个哥们给了一个 ...
- 【Java】Swing+IO流实现一个简单的文件加密程序(较完整版)
留着参考 beans package com.my.bean; import java.io.Serializable; public class EncryptedFile implements S ...
- Android下使用Properties文件保存程序设置
原文:http://jerrysun.blog.51cto.com/745955/804789 废话不说,直接上代码. 读取.properties文件中的配置: String strValue ...
- 【转】Android下使用Properties文件保存程序设置
原文:http://jerrysun.blog.51cto.com/745955/804789 废话不说,直接上代码. 读取.properties文件中的配置: String strValue ...
- android破解AndroidManifest.xml文件
使用java -jar E:\AXMLPrinter2.jar E:\AndroidManifest.xml > E:\manifest.txt 但要先下载AXMLPrinter2.jar(h ...
- Android之zip文件加密解压及进度条的实现
zip文件的解压能够使用java的zip库,可是没有实现对加密文件的解压功能,这里能够使用zip4j来实现.详细能够參看该文<Android下zip压缩文件加密解密的完美解决方式>.该文件 ...
- TEA加密算法的文件加密和解密的实现
一.TEA加密算法简介 TEA加密算法是由英国剑桥大学计算机实验室提出的一种对称分组加密算法.它采用扩散和混乱方法,对64位的明文数据块,用128位密钥分组进行加密,产生64位的密文数据块,其循环轮数 ...
- 用python实现文件加密功能
生活中,有时候我们需要对一些重要的文件进行加密,Python 提供了诸如 hashlib,base64 等便于使用的加密库. 但对于日常学习而言,我们可以借助异或操作,实现一个简单的文件加密程序,从而 ...
随机推荐
- 浅析MongoDB数据库的海量数据存储应用
[摘要]当今已进入大数据时代,特别是大规模互联网web2.0应用不断发展及云计算所需要的海量存储和海量计算发展,传统的关系型数据库已无法满足这方面的需求.随着NoSQL数据库的不断发展和成熟,可以较好 ...
- 二十七(序幕)、【开源】EFW框架破茧成蝶
回<[开源]EFW框架系列文章索引> EFW框架源代码下载V1.3:http://pan.baidu.com/s/1c0dADO0 EFW框架实例源代码下载:http://p ...
- centos下配置java环境变量
一. 需要配置的环境变量1. PATH环境变量.作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序.我们需要把 jdk安装目录下的bin ...
- [JAVA词形还原工具]Snowball
demo:http://snowball.tartarus.org/demo.php jar download:http://snowball.tartarus.org/download.php (J ...
- VS错误 error LNK1158: 无法运行“cvtres.exe”
1.删除文件 2.如果删除不掉 右键属性 - 安全 - 高级 - 所有者 - 确定 右键属性 - 安全 - 编辑 - 开通权限
- 个人对joomla3.2x和joomla2.5X浅薄看法
很久没有写joomla文章了,发现想写的东西还是挺多的,后面抽时间补回来,其实更多还是php的一些东西.joomla3.0以后系统改变挺大,后台都是用bootstrap作为主题,个人对这个无爱,因为他 ...
- 红黑树(五)之 Java的实现
概要 前面分别介绍红黑树的理论知识.红黑树的C语言和C++的实现.本章介绍红黑树的Java实现,若读者对红黑树的理论知识不熟悉,建立先学习红黑树的理论知识,再来学习本章.还是那句老话,红黑树的C/C+ ...
- Sequence.js - 适合电子商务网站的图片滑块
Sequence.js 是一个非常现代的图片滑动效果,特别适合电子商务网站或者企业产品展示功能.带有图片缩率图,能够呈现全屏图片浏览效果.结合 CSS3 Transition 实现响应式的滑块效果. ...
- IOS开发UI基础UISlide属性
UISlide属性 • minimumValue : 当值可以改变时,滑块可以滑动到最小位置的值,默认为0.0_slider.minimumValue = 10.0; • maximum ...
- 通过Foxit和坚果云实现iPad和PC的pdf同步阅读(修改,笔记)
这是解决我之后上班地铁上看书问题的一个关键部分 一个手持电子设备,不大不小 一个方便做笔记的笔 一个方便做笔记的阅读器软件 方便快速地同步(只同步标记最好了) 在查看很多建议以及自己尝试之后,总结了这 ...