1.首先将crackme0502 拖入模拟器。打开应用,随意输出字符串

2. 将APK 拖入AndroidKiller 反编译

3.先查看androidmanifest.xml

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.droider.crackme0502">
<application android:debuggable="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:name=".MyApp" android:theme="@style/AppTheme">
<activity android:label="@string/title_activity_main" android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>

4. 直接定位到主页面的MainActivity,查看MainActivity.smali代码,发现有这样一行代码


.line 40
iget-object v0, p0, Lcom/droider/crackme0502/MainActivity;->btnCheckSN:Landroid/widget/Button; new-instance v1, Lcom/droider/crackme0502/MainActivity$2; invoke-direct {v1, p0}, Lcom/droider/crackme0502/MainActivity$2;-><init>(Lcom/droider/crackme0502/MainActivity;)V invoke-virtual {v0, v1}, Landroid/widget/Button;->setOnClickListener(Landroid/view/View$OnClickListener;)V
这里创建了一个MainActivity$2的对象,并作为参数传入给了Button;->setOnClickListener,所以这是一个点击的监听内部类,进去看看它的onclick方法

5. 搜索toast弹出的字符串: “注册码错误” ;首先要将其转换成Unicode格式

6. 通过该Unicode定位

    .line 45
.local v0, "checker":Lcom/droider/crackme0502/MainActivity$SNChecker;
invoke-virtual {v0}, Lcom/droider/crackme0502/MainActivity$SNChecker;->isRegistered()Z move-result v2 if-eqz v2, :cond_0 const-string v1, "\u6ce8\u518c\u7801\u6b63\u786e" # 这里是: “注册码正确”

7. 确认是if-eqz v2, :cond_0在控制跳转,先暴力一点,直接改为 if-nez v2, :cond_0,重新打包签名,放入虚拟机运行,ok

最新文章

  1. 在线预览Office文件【效果类似百度文库】
  2. JQurey
  3. Safari中的new Date()格式化坑
  4. QuerySet创建新对象的方法和获取对象的方法
  5. 【CocoaPods】配置CocoaPods后 - CocoaPods使用
  6. 《Python基础教程(第二版)》学习笔记 -&gt; 第四章 字典
  7. css所有选择器的详解
  8. C++ STL的各种实现版本
  9. 重读LPTHW-Lesson37
  10. OpenGL学习之windows下安装opengl的glut库
  11. react native 运行项目下载gradle慢的解决办法
  12. 结对作业1----基于flask框架的四则运算生成器
  13. Junit4学习(三)Junit运行流程
  14. Kotlin——从无到有系列之高级篇(一):Lambda表达式
  15. P2123 皇后游戏
  16. Centos7.0进入单用户模式修改root密码
  17. 一、TCP扫描技术
  18. VMware Authorization Service不能启动 VMware虚拟机状态已挂起无法恢复解决方案
  19. 关于GDI+的一些使用基础设置
  20. 在Keras模型中one-hot编码,Embedding层,使用预训练的词向量/处理图片

热门文章

  1. 如何手动解析vue单文件并预览?
  2. MySql查看索引以及各字段含义
  3. CANN算子:利用迭代器高效实现Tensor数据切割分块处理
  4. 以脚本形式运行python库
  5. C++ delete后的指针在不同编译器下的状态差异
  6. Active Backup for Business激活
  7. ESP分区重建,解决各种引导问题
  8. 如何使用API接口批量查询图书信息?
  9. 基于图的广度优先搜索策略(耿7.11)--------西工大noj.20
  10. 自建docker仓库