crackme.apk分析实例
样本2crackme与注册码破解
apk运行
apk运行效果:随意输入不能注册
目标:破解注册码
分析apk
GDA打开
从onclick到access2最后到checkSN函数,发现最后的注册码逻辑
该关键函数代码如下,解读代码逻辑就是:
读取username,将其转换成md5,然后将md5字符串间隔(2个2个)生成一个子串。子串则是username对应的sn。对比用户输入的sn和由用户名生成的规则的sn,如果一致,那么就能成功注册。
private boolean MainActivity.checkSN(String userName,String sn) //method@0b9d
{MessageDigest v1;byte[] bytes;String v3;StringBuilder v5;int v4;String userSN;boolean v7 = false;if ((!userName)||((userName.length())&&((sn)&&(sn.length() == 16)))) { v1 = MessageDigest.getInstance("MD5");v1.reset();v1.update(userName.getBytes());//获取字符串bytes数组bytes = v1.digest();//md5加密v3 = MainActivity.toHexString(bytes, "");//变成hexv5 = new StringBuilder();v4 = 0;while ((v4 < v3.length())) { v5 = v5.append(v3.charAt(v4));//charAt获取对应index的字符v4 = v4+2;} userSN = v5.toString();if (userSN.equalsIgnoreCase(sn)) { v7 = true;} } return v7;
}
破解注册码
- 方法1:网上md5在线计算
md5在线计算 - StrErr.com
将结果隔一个取成新的字符串。
- 方法2:自己编写脚本
import hashlibdata = input()
data = bytes(data,encoding='utf-8')###注意在md5加密之前,要将字符串变成bytes类型m = hashlib.md5() # 创建md5对象m.update(data) # 更新md5对象t= m.hexdigest() # 返回md5对象print(t[::2])
方法1 2 结果都是一样的。
验证并破解apk
注:该apk是一次性的,也就是说,点过注册按钮之后,关掉重新启动才会正常。
crackme.apk分析实例相关推荐
- JVM指令分析实例四(数组、switch)
本篇为<JVM指令分析实例>的第四篇,相关实例均使用Oracle JDK 1.8编译,并使用javap生成字节码指令清单. 前几篇传送门: JVM指令分析实例一(常量.局部变量.for循环 ...
- 《简明电路分析》——1.6节简单电路分析实例
本节书摘来自华章社区<简明电路分析>一书中的第1章,第1.6节简单电路分析实例,作者钟洪声 吴 涛 孙利佳,更多章节内容可以访问云栖社区"华章社区"公众号查看 1.6 ...
- flac3d命令流实例大全_ANSYS APDL 疲劳分析实例附命令流
图1为一个角型板,边界条件:底端固定,顶端承受0-30kpa的压力,计算指定位置的疲劳寿命,表1给出了材料的S-N数据:图1给出了疲劳分析模型的几何尺寸. 表1 材料的N-S数据 N 100 200 ...
- c语言条件编译的例子,C语言条件编译分析实例
C语言条件编译分析实例 1.利用#ifdef / #endif 将程序功能模块包括进去,以向某用户提供该功能. 在程序首部定义#define HNLD: #ifdef HNLD include&quo ...
- python爬取天气预报源代码_python抓取天气并分析 实例源码
[实例简介] Python代码抓取获取天气预报信息源码讲解.这是一个用Python编写抓取天气预报的代码示例,用python写天气查询软件程序很简单.这段代码可以获取当地的天气和.任意城市的天气预报, ...
- PHP5异常处理,PHP5异常处理分析实例
PHP5异常处理分析实例 导语:PHP 5 添加了类似于其它语言的异常处理模块.下面的是百分网小编为大家搜集的用实例分析PHP5异常处理实例,希望对你能有所帮助. <?php /** * ■㈠P ...
- MPEG2-PS格式分析实例
一. PS 包头格式 1.PS 包头格式 包起始码字段 pack_start_code 值为'0000 0000 0000 00000000 0001 1011 1010' (0x000001BA) ...
- Java模拟拨打电话程序_java_编写android拨打电话apk应用实例代码,android 实现拨打电话的app,代 - phpStudy...
编写android拨打电话apk应用实例代码 android 实现拨打电话的app,代码非常简单,功能也很实用,分享给大家. MainActivity.java package com.bblei.c ...
- 汽车专场 | 新能源汽车动力电池PACK CAE分析实例解读
一.PACK为什么需要CAE分析? PACK是新能源汽车最重要的组成部分,可称之为心脏,电池系统需要满足汽车运营条件下的苛刻力学环境的要求.按照传统研发方式,设计-样包-测试-优化-样包-测试,反复循 ...
最新文章
- SAP S/4 HANA中的供应链计划提升
- 自动化学习的正确姿势
- python3.7 6如何安装-redhat7.6 安装Python 3
- jQuery-DOM节点插入总结
- SQL语言之组函数(Oracle)
- notify和wait
- centos怎样安装mysql,Centos安装mySQL
- ArcGIS API for JavaScript实现分图层显示
- Codeforces Gym101205D:Fibonacci Words(KMP+递推)
- 【转】Geary's C
- 阿里巴巴与小毛驴的故事——贪心算法
- python转换函数使用_Python基础学习之时间转换函数用法详解
- swift. 扩展类添加属性_IOS_Swift中用到extension的一些基本的扩展功能讲解,现有的类,结构或枚举类型的 - phpStudy...
- hcfax2e伺服驱动器说明书_SD伺服驱动器说明书
- 怎么批量删除 Word、Excel 以及文本文档中的空白行?
- MATLAB对CT图读取,写入
- 再次哀悼吧!最佳夸浏览器同步 Xmarks 宣布终止服务
- Amy-Tabb机器人世界手眼标定(1、环境搭配)
- 记录贴/阴阳师core loop
- kafka 命令重新启动_命令行基础知识:关闭和重新启动