作者:Fly2015

AliCrackme_2.apk运行起来的注册界面,如图。

首先使用Android反编译利器Jeb对AliCrackme_2.apk的Java层代码进行分析。

很幸运,就找到了该apk程序的用户注册码的函数securityCheck并且这个函数是在Native层实现的。下面就到该程序的so库中去查找该函数的Native实现。

Native层securityCheck函数的注册并不是使用在JNI_OnLoad函数中进行注册的方式注册的,因此非常走运的找到securityCheck函数的实现,分析如下图:

通过对Native代码的静态的分析发现, _lpSaveBuffer = off_628C中保存的就是正确的注册码字符串,因此,要获取该apk的注册码,必须对其进行动态的调试,获取到_lpSaveBuffer 中保存的字符串的内容就能实现该apk的破解。

对该Android应用程序进行动态的调试。说一句,Android应用程序一般会在JNI_OnLoad函数中进行程序的反调试操作,以防止别人对其App进行动态调试。经过几轮动态调试的实验,发现该Android应用程序会调用函数pthread_create创建线程进行反调试。因此,直接在函数Java_com_yaotong_crackme_MainActivity_securityCheck处下断点实现破解的方法不能直接达到。

因此,为了阻止该App程序的反调试,将程序的代码进行了修改。如图,定位地址A8CE 9C58处的ARM汇编指令BLX R7在内存中的位置,然后将汇编指令BLX R7改为汇编指令MOV R0, RO即NOP掉BLX R7指令。

至于ARM汇编指令与机器码的转换,使用下面这个工具,但是请注意,在使用这个工具的时候,必须将这个工具放在桌面上才能正常的使用。

顺利跨过反调试的障碍,下面就在函数Java_com_yaotong_crackme_MainActivity_securityCheck上下断点,直奔主题。

在程序输入密码的界面上,随便输入一个字符串密码,函数Java_com_yaotong_crackme_MainActivity_securityCheck就会被调用。

程序就会断在函数Java_com_yaotong_crackme_MainActivity_securityCheck上,然后在该函数里找到_lpSaveBuffer = off_628C对应的汇编代码LDR R2, [R1, R7]。在汇编代码LDR R2, [R1, R7]的下一条指令上下断点即可得到R2保存的密码字符串指针的地址为A8CEC450,然后在程序数据内存中同步R2的值定位到地址A8CEC450处的字符串aiyou,bucuoo,很显然aiyou,bucuoo就是要获取的密码。


AliCrackme_2题的分析文档和apk下载地址:http://download.csdn.net/detail/qq1084283172/8897059

AliCrackme_2题的分析的更多相关文章

  1. Python小白的数学建模课-A1.国赛赛题类型分析

    分析赛题类型,才能有的放矢. 评论区留下邮箱地址,送你国奖论文分析 『Python小白的数学建模课 @ Youcans』 带你从数模小白成为国赛达人. 1. 数模竞赛国赛 A题类型分析 年份 题目 要 ...

  2. Project Euler 第一题效率分析

    Project Euler: 欧拉计划是一系列挑战数学或者计算机编程问题,解决这些问题需要的不仅仅是数学功底. 启动这一项目的目的在于,为乐于探索的人提供一个钻研其他领域并且学习新知识的平台,将这一平 ...

  3. Leetcode第1题至第10题 思路分析及C++实现

    笔者按照目录刷题,对于每一道题,力争使用效率最高(时间复杂度最低)的算法,并全部通过C++代码实现AC.(文中计算的复杂度都是最坏情况复杂度) 因为考虑到大部分读者已经在Leetcode浏览过题目了, ...

  4. leetcode Online Judge 150题 解答分析之一 Reverse Words in a String

    问题 Given an input string, reverse the string word by word. For example, Given s = "the sky is b ...

  5. 【编程题与分析题】Javascript 之继承的多种实现方式和优缺点总结

    [!NOTE] 能熟练掌握每种继承方式的手写实现,并知道该继承实现方式的优缺点. 原型链继承 function Parent() { this.name = 'zhangsan'; this.chil ...

  6. C++ 每日一题 参数分析 (vector)

    首先给出原题地址: https://www.nowcoder.com/practice/668603dc307e4ef4bb07bcd0615ea677?tpId 以下是代码解析: #include& ...

  7. 模拟电磁曲射炮_H题 方案分析【2019年电赛】【刘新宇qq522414928】

    请查看我的有道云笔记: 文档:电磁曲射炮分析.note链接:http://note.youdao.com/noteshare?id=26f6b6febc04a8983d5efce925e92e21

  8. OCP考试最新052题库分析整理-28

    28.Which two are true about external tables? A. They support the ORACLE_DATAPUMP access driver. B. T ...

  9. 2014年百度之星程序设计大赛 - 资格赛 第二题 Disk Schedule

    双调欧几里得旅行商问题是一个经典动态规划问题.<算法导论(第二版)>思考题15-1和北京大学OJ2677都出现了这个题目. 旅行商问题描写叙述:平面上n个点,确定一条连接各点的最短闭合旅程 ...

随机推荐

  1. go 动态数组 二维动态数组

    go使用动态数组还有点麻烦,比python麻烦一点,需要先定义. 动态数组申明 var dynaArr []string 动态数组添加成员 dynaArr = append(dynaArr, &quo ...

  2. 巧用 -webkit-box-reflect 倒影实现各类动效

    在很久之前的一篇文章,有讲到 -webkit-box-reflect 这个属性 -- 从倒影说起,谈谈 CSS 继承 inherit -webkit-box-reflect 是一个非常有意思的属性,它 ...

  3. 解决.NET Core Ajax请求后台传送参数过大请求失败问题

    解决.NET Core Ajax请求后台传送参数过大请求失败问题 今天在项目上遇到一个坑, 在.Net Core中通过ajax向mvc的controller传递对象时,控制器(controller)的 ...

  4. 助力面试之ConcurrentHashMap面试灵魂拷问,你能扛多久

    目录 前言 ConcurrentHashMap 原理 JDK1.8 版本 ConcurrentHashMap 做了什么改进 为什么 key 和 value 不允许为 null ConcurrentHa ...

  5. HTML基础速览

    HTML概述 HTML ,CSS , JavaScript, JQuery, Vue 的关系 HTML可以写一个简单的前端,但是很丑,所以需要CSS对HTML进行美化 HTML是静态的.JavaScr ...

  6. WAV16T VPX国产化千兆交换板

      WAV16T是基于盛科CTC5160设计的国产化3U三层千兆VPX交换板,提供16路千兆电口,采用龙芯 2K1000处理器.支持常规的L2/L3协议,支持Telnet.SNMP.WEB,CLI等多 ...

  7. Codeforces Round #574 (Div. 2) D2. Submarine in the Rybinsk Sea (hard edition) 【计算贡献】

    一.题目 D2. Submarine in the Rybinsk Sea (hard edition) 二.分析 相比于简单版本,它的复杂地方在于对于不同长度,可能对每个点的贡献可能是有差异的. 但 ...

  8. 在C#中使用 CancellationToken 处理异步任务

    在 .NET Core 中使用异步编程已经很普遍了, 你在项目中随处可见 async 和 await,它简化了异步操作,允许开发人员,使用同步的方式编写异步代码,你会发现在大部分的异步方法中,都提供了 ...

  9. POJ2635(数论+欧拉筛+大数除法)

    题目链接:https://vjudge.net/problem/POJ-2635 题意:给定一个由两个质数积的大数M和一个数L,问大数M的其中较小的质数是否小于L. 题解:因为大数M已经超过long ...

  10. 练习使用Unicorn、Capstone

    Unicorn是一个轻量级的多平台,多体系结构的CPU仿真器框架.官网:http://www.unicorn-engine.org/ Capstone是一个轻量级的多平台,多体系结构的反汇编框架.官网 ...