吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 7598|回复: 46

[安卓逆向图文] 安卓逆向 - 玄奥八字爆破

  [复制链接]
sumith 发表于 2016-8-3 12:03 | 显示全部楼层 |阅读模式

一、首先运行软件,要知道我们逆向的是什么,没注册我们只能排1999年的
1.png


二、菜单--更多--注册,输入乱码,看有什么提示,“请输入注册号”


2.png


三、载入AK,搜索错误提示,记得转码,搜索“\u8bf7\u8f93\u5165”


3.png


四、进入JAVA代码,具体分析,


4.png


五、返回AK,继续搜索,验证注册码的方法“ChkNumA()”


5.png


六、分析代码,ChkNumA()、ChkNumB()、ChkNumC()


[Java] 纯文本查看 复制代码
public boolean ChkNumA()
  {
    long l1 = 0L;
    char[] arrayOfChar = new char[6];
    if ((this.Fregcode.length() != 15) || (this.Fsoftsn.length() != 12)) {
      return false;
    }
    long l2 = 10000L;
    int i = 1;
    long l3;
    long l4;
    do
    {
      l3 = l1 + (this.Fregcode.charAt(i - 1) - '0') * l2;
      i += 1;
      l4 = l2 / 10L;
      l2 = l4;
      l1 = l3;
    } while (l4 > 0L);
    String str = String.valueOf(((l3 ^ SnCal(1555L)) + 1555L) / 3L - 1555L).trim();
    l1 = str.length();
    str.getChars(0, (int)l1, arrayOfChar, 0);
    if (l1 < 4L)
    {
      l2 = 4L - l1;
      i = (int)(l1 - 1L);
      if (i < 0)
      {
        i = 0;
        label165:
        if (i < (int)l2) {
          break label199;
        }
      }
    }
    else
    {
      i = 1;
    }
    for (;;)
    {
      if (i > 4)
      {
        return true;
        arrayOfChar[((int)(i + l2))] = arrayOfChar;
        i -= 1;
        break;
        label199:
        arrayOfChar = '0';
        i += 1;
        break label165;
      }
      if (arrayOfChar[(i - 1)] != this.Fsoftsn.charAt(i - 1)) {
        return false;      //三个函数都是这里返回flase,我们猜想改成true,看行不行,
      }
      i += 1;
    }
  }


七、返回AK,修改代码,然后保存,编译


.method public ChkNumA()Z
    .locals 14

    .prologue
    .line 257
    const-wide/16 v0, 0x613

    .line 258
    .local v0, "DW1":J
    const-wide/16 v9, 0x0

    .line 259
    .local v9, "tol":J
    const/4 v11, 0x6

    new-array v2, v11, [C

    .line 261
    .local v2, "cnum":[C
    const-string v4, ""

    .line 263
    .local v4, "stmp":Ljava/lang/String;
    iget-object v11, p0, LMy/XuanAo/BaZi/CSoftReg;->Fregcode:Ljava/lang/String;

    invoke-virtual {v11}, Ljava/lang/String;->length()I

    move-result v11

    const/16 v12, 0xf

    if-ne v11, v12, :cond_0

    iget-object v11, p0, LMy/XuanAo/BaZi/CSoftReg;->Fsoftsn:Ljava/lang/String;

    invoke-virtual {v11}, Ljava/lang/String;->length()I

    move-result v11

    const/16 v12, 0xc

    if-eq v11, v12, :cond_1

    :cond_0
    const/4 v11, 0x0

    .line 289
    :goto_0
    return v11

    .line 264
    :cond_1
    const-wide/16 v5, 0x2710

    .local v5, "t1":J
    const/4 v3, 0x1

    .line 266
    .local v3, "ii":I
    :cond_2
    iget-object v11, p0, LMy/XuanAo/BaZi/CSoftReg;->Fregcode:Ljava/lang/String;

    add-int/lit8 v12, v3, -0x1

    invoke-virtual {v11, v12}, Ljava/lang/String;->charAt(I)C

    move-result v11

    add-int/lit8 v11, v11, -0x30

    int-to-long v7, v11

    .line 267
    .local v7, "t2":J
    mul-long v11, v7, v5

    add-long/2addr v9, v11

    .line 268
    add-int/lit8 v3, v3, 0x1

    .line 269
    const-wide/16 v11, 0xa

    div-long/2addr v5, v11

    .line 270
    const-wide/16 v11, 0x0

    cmp-long v11, v5, v11

    if-gtz v11, :cond_2

    .line 271
    const-wide/16 v11, 0x613

    invoke-virtual {p0, v11, v12}, LMy/XuanAo/BaZi/CSoftReg;->SnCal(J)J

    move-result-wide v11

    xor-long/2addr v9, v11

    .line 272
    const-wide/16 v11, 0x613

    add-long/2addr v9, v11

    const-wide/16 v11, 0x3

    div-long/2addr v9, v11

    .line 273
    const-wide/16 v11, 0x613

    sub-long/2addr v9, v11

    .line 274
    invoke-static {v9, v10}, Ljava/lang/String;->valueOf(J)Ljava/lang/String;

    move-result-object v11

    invoke-virtual {v11}, Ljava/lang/String;->trim()Ljava/lang/String;

    move-result-object v4

    .line 275
    invoke-virtual {v4}, Ljava/lang/String;->length()I

    move-result v11

    int-to-long v5, v11

    .line 276
    const/4 v11, 0x0

    long-to-int v12, v5

    const/4 v13, 0x0

    invoke-virtual {v4, v11, v12, v2, v13}, Ljava/lang/String;->getChars(II[CI)V

    .line 277
    const-wide/16 v11, 0x4

    cmp-long v11, v5, v11

    if-gez v11, :cond_3

    .line 279
    const-wide/16 v11, 0x4

    sub-long v7, v11, v5

    .line 280
    const-wide/16 v11, 0x1

    sub-long v11, v5, v11

    long-to-int v3, v11

    :goto_1
    if-gez v3, :cond_4

    .line 282
    const/4 v3, 0x0

    :goto_2
    long-to-int v11, v7

    if-lt v3, v11, :cond_5

    .line 285
    :cond_3
    const/4 v3, 0x1

    :goto_3
    const/4 v11, 0x4

    if-le v3, v11, :cond_6

    .line 289
    const/4 v11, 0x1

    goto :goto_0

    .line 281
    :cond_4
    int-to-long v11, v3

    add-long/2addr v11, v7

    long-to-int v11, v11

    aget-char v12, v2, v3

    aput-char v12, v2, v11

    .line 280
    add-int/lit8 v3, v3, -0x1

    goto :goto_1

    .line 283
    :cond_5
    const/16 v11, 0x30

    aput-char v11, v2, v3

    .line 282
    add-int/lit8 v3, v3, 0x1

    goto :goto_2

    .line 287
    :cond_6
    add-int/lit8 v11, v3, -0x1

    aget-char v11, v2, v11

    iget-object v12, p0, LMy/XuanAo/BaZi/CSoftReg;->Fsoftsn:Ljava/lang/String;

    add-int/lit8 v13, v3, -0x1

    invoke-virtual {v12, v13}, Ljava/lang/String;->charAt(I)C

    move-result v12

    if-eq v11, v12, :cond_7

    const/4 v11, 0x0    //将三个函数的这里0x0改为0x1即“  const/4 v11, 0x1 ”

    goto :goto_0

    .line 285
    :cond_7
    add-int/lit8 v3, v3, 0x1

    goto :goto_3
.end method


7.png



八、运行编译号apk,成功逆向

8.png


希望大家能够多多评分,谢谢。。。。






评分

参与人数 38威望 +1 HB +85 THX +24 收起 理由
lies + 1
sjtkxy + 2 + 1
花盗睡鼠 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
虚心学习 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
24567 + 1
消逝的过去 + 2
yexing + 1
禽大师 + 1
dalonglong001 + 1 + 1
ldljlzw + 1
我是好人 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
ams + 1
xiachunjie + 2 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
努力实现自由 + 1
weiran324 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
叶落花开 + 2
liugu0hai + 1 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
jaunic + 1
zxjzzh + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
georip + 1 学习啦··· 好教材
ddx123 + 1 [快捷评语] - 2017,让我们17学破解!
cqr2287 + 1 评分=感恩!简单却充满爱!感谢您的作品!
爱好者 + 2 + 1 评分,感谢LZ。
本物天下霸唱 + 6 + 1 感谢
小神的小学生 + 1 + 1 分享精神,是最值得尊敬的!
tianzhiya + 1 吃水不忘打井人,给个评分懂感恩!
a331636694 + 1 分享精神,是最值得尊敬的!
A00 + 1 + 1 吃水不忘打井人,给个评分懂感恩!
donglouse + 1 + 1 吃水不忘打井人,给个评分懂感恩!
thisis + 2 + 1 吃水不忘打井人,给个评分懂感恩!
pnccm + 2 分享精神,是最值得尊敬的!
我好想世界末日 + 1 + 1 分享精神,是最值得尊敬的!
oo-fish + 1 + 1 评分=感恩!简单却充满爱!感谢您的作品!
Shark恒 + 1 + 30 + 1 评分=感恩!简单却充满爱!感谢您的作品!
xuenii + 5 + 1 这个叼的不行~
Doubts + 1 + 1 评分=感恩!简单却充满爱!感谢您的作品!
FraMeQ + 5 + 1 分享精神,是最值得尊敬的!
Honey丶Crack + 6 + 1 分享精神,是最值得尊敬的!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
笔尖下的日子 发表于 2016-8-3 12:18 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Doubts 发表于 2016-8-3 12:39 | 显示全部楼层

这个好
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
oo-fish 发表于 2016-8-3 22:21 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
我好想世界末日 发表于 2016-8-5 19:42 | 显示全部楼层

感谢 十分感谢 我之前就想研究下安卓的 现在有你这个做基础 貌似刚好 谢谢了
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
taxuewuhen 发表于 2016-8-5 21:02 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
chenjinghappy 发表于 2016-8-6 01:09 | 显示全部楼层

谢谢楼主分享 !!   谢谢!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
KingRom 发表于 2016-8-6 08:09 | 显示全部楼层

提示: 作者被禁止或删除 内容自动屏蔽
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
pnccm 发表于 2016-8-6 09:06 | 显示全部楼层

现在的app都有加固,希望能出个这类的教程
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
wusuobuzai 该用户已被删除
wusuobuzai 发表于 2016-8-6 09:33 | 显示全部楼层

提示: 作者被禁止或删除 内容自动屏蔽
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表