样本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分析实例相关推荐

  1. JVM指令分析实例四(数组、switch)

    本篇为<JVM指令分析实例>的第四篇,相关实例均使用Oracle JDK 1.8编译,并使用javap生成字节码指令清单. 前几篇传送门: JVM指令分析实例一(常量.局部变量.for循环 ...

  2. 《简明电路分析》——1.6节简单电路分析实例

    本节书摘来自华章社区<简明电路分析>一书中的第1章,第1.6节简单电路分析实例,作者钟洪声 吴 涛 孙利佳,更多章节内容可以访问云栖社区"华章社区"公众号查看 1.6 ...

  3. flac3d命令流实例大全_ANSYS APDL 疲劳分析实例附命令流

    图1为一个角型板,边界条件:底端固定,顶端承受0-30kpa的压力,计算指定位置的疲劳寿命,表1给出了材料的S-N数据:图1给出了疲劳分析模型的几何尺寸. 表1 材料的N-S数据 N 100 200 ...

  4. c语言条件编译的例子,C语言条件编译分析实例

    C语言条件编译分析实例 1.利用#ifdef / #endif 将程序功能模块包括进去,以向某用户提供该功能. 在程序首部定义#define HNLD: #ifdef HNLD include&quo ...

  5. python爬取天气预报源代码_python抓取天气并分析 实例源码

    [实例简介] Python代码抓取获取天气预报信息源码讲解.这是一个用Python编写抓取天气预报的代码示例,用python写天气查询软件程序很简单.这段代码可以获取当地的天气和.任意城市的天气预报, ...

  6. PHP5异常处理,PHP5异常处理分析实例

    PHP5异常处理分析实例 导语:PHP 5 添加了类似于其它语言的异常处理模块.下面的是百分网小编为大家搜集的用实例分析PHP5异常处理实例,希望对你能有所帮助. <?php /** * ■㈠P ...

  7. MPEG2-PS格式分析实例

    一. PS 包头格式 1.PS 包头格式 包起始码字段  pack_start_code 值为'0000 0000 0000 00000000 0001 1011 1010' (0x000001BA) ...

  8. Java模拟拨打电话程序_java_编写android拨打电话apk应用实例代码,android 实现拨打电话的app,代 - phpStudy...

    编写android拨打电话apk应用实例代码 android 实现拨打电话的app,代码非常简单,功能也很实用,分享给大家. MainActivity.java package com.bblei.c ...

  9. 汽车专场 | 新能源汽车动力电池PACK CAE分析实例解读

    一.PACK为什么需要CAE分析? PACK是新能源汽车最重要的组成部分,可称之为心脏,电池系统需要满足汽车运营条件下的苛刻力学环境的要求.按照传统研发方式,设计-样包-测试-优化-样包-测试,反复循 ...

最新文章

  1. SAP S/4 HANA中的供应链计划提升
  2. 自动化学习的正确姿势
  3. python3.7 6如何安装-redhat7.6 安装Python 3
  4. jQuery-DOM节点插入总结
  5. SQL语言之组函数(Oracle)
  6. notify和wait
  7. centos怎样安装mysql,Centos安装mySQL
  8. ArcGIS API for JavaScript实现分图层显示
  9. Codeforces Gym101205D:Fibonacci Words(KMP+递推)
  10. 【转】Geary's C
  11. 阿里巴巴与小毛驴的故事——贪心算法
  12. python转换函数使用_Python基础学习之时间转换函数用法详解
  13. swift. 扩展类添加属性_IOS_Swift中用到extension的一些基本的扩展功能讲解,现有的类,结构或枚举类型的 - phpStudy...
  14. hcfax2e伺服驱动器说明书_SD伺服驱动器说明书
  15. 怎么批量删除 Word、Excel 以及文本文档中的空白行?
  16. MATLAB对CT图读取,写入
  17. 再次哀悼吧!最佳夸浏览器同步 Xmarks 宣布终止服务
  18. Amy-Tabb机器人世界手眼标定(1、环境搭配)
  19. 记录贴/阴阳师core loop
  20. kafka 命令重新启动_命令行基础知识:关闭和重新启动

热门文章

  1. win10启动修复_win10开机死循环无限重启怎么解决?
  2. java hasnext_Java Page.hasNext方法代码示例
  3. 科技论文的分类及写作
  4. 电源知识——LDO线性电源、开关电源(基础)
  5. C语言 输入三角形的三条边(a,b,c),计算三角形的面积
  6. 2019年蓝桥杯C/C++ B组试题 部分题目答案
  7. 0082-莱布尼兹三角形
  8. 日语输入中的促音怎么输入
  9. 盘点2021年晋升为Apache TLP的大数据相关项目
  10. jQuery Cookbook中文版