13. JEB动态调试---获取注册码_ crackme02

JEB搜索字符串

1. 打开smali视图

///双击"Bytecode"会打开两个窗口,两个窗口都显示反编译后所有smali文件

Bytecode/Hierarchy视图:  //以树形结构显示所有smali文件

Bytecode/Disassembly视图:    //所有smali文件都包含在Disassembly一个文件中

2. 在smali中搜索字符串

///切换到 Bytecode/Disassembly视图”, 选择String选项卡

///搜索注册失败”, 双击搜索到的结果,会跳转到smali中对应的位置

3. 在java代码中搜索字符串

3.1 假设要在java代码中,搜索哪些位置用到了xml中的字符串”reg”

3.2 通常先将”reg”id:ox7F080000转换为10进制的:2131230720, 再搜索这个10进制数

3.3 smali视图中,Q,解析为JAVA代码

3.4 java代码中, Ctrl+F查找字符串

JEB反混淆神器(修改混淆过的方法名)

混淆处理过的方法不便于分析, 当我们分析过了a()方法,

知道了a()方法的作用是检查SN, 可以给方法重命名为: chechSN()

///光标定位到方法名之前(或选中方法名), 按快捷N

JEB动态调试---获取注册码_ crackme02

1. 在”雷电模拟器”中运行apk程序
2. 在JEB的checkSN()方法中下断点

Ctrl+B  //下断点

.method private checkSN(String, String)Z

          .registers 13

00000000  const/4             v7, 0

00000002  if-eqz              p1, :12

:6

00000006  invoke-virtual      String->length()I, p1

0000000C  move-result         v8

0000000E  if-nez              v8, :14

:12

00000012  return              v7

:14

00000014  if-eqz              p2, :12 ///在此处下断点,可以查看参数寄存器:p1p2的值

3. 在JEB中附加apk进程

在弹出的提示框中点击"确定"按钮

在弹出的"附加"窗口中,设置要附加的进程

01. 在设备列表中,选中安卓设备

02. 在进程搜索框中,光标定位到进程名的结尾处, 按回车键搜索进程

03. 选中搜索到的进程, 点”附加”按钮

4. 在apk程序中注册,触发断点

1. 注意要输入16位的注册码

2. 断点被触发

5. 在控制台窗口打印用户名和注册码

readvar p1 string   //显示: "tony"

readvar p2 string   //显示: "123456789abcdefg"

6. 在”寄存器窗口”查看注册码

///v6其实就是用户名经过MD5加密后的注册码,在这里下断点

///运行到断点位置后F6单步

/// 因为寄存器窗口中,默认显示的类型为int, 要将v6修改为string类型,才能显示正确的注册码

// 用户名为: tony, 注册码为: dcfe628ebf73f1c0

  • 23
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值