吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3708|回复: 7
收起左侧

[会员申请] 申请会员ID:7ktest【申请通过】

[复制链接]
吾爱游客  发表于 2015-6-2 17:50
申请ID:7ktest
申请邮箱:gyluci2@163.com


看到这篇帖子,顺手破解了:http://www.52pojie.cn/thread-369616-1-1.html

打开软件的样子可以在上面帖子的2楼看到,需要用户输入注册码。

我们使用ApkIDE(apk改之理)打开下载好的apk,搜索 字符串“\u5e8f\u5217\u53f7\u9519\u8bef”(也就是“序列号错误”)。
得到:

1.jpg
该方法是按钮点击后的处理方法。
反编译后的java代码是:
 String str = this.this$0.editText.getText().toString();
      Log.i("ddd", this.this$0.seriaNumber);   //这里日志输出了序列号
      if (str.equals(this.this$0.seriaNumber)) //和用户的输入进行对比
      {
        SharedPreferences.Editor localEditor = this.this$0.sharedReg.edit(); //然后保存到文件,下次就不用重新注册了
        localEditor.putString("ISREG", "1");
        localEditor.commit();
        Intent localIntent = new Intent();
        localIntent.setClass(this.this$0, MainActivity.class);
        this.this$0.startActivity(localIntent);
        this.this$0.finish();
        return;
      }
      Toast.makeText(this.this$0, "序列号错误,请检查后重新输入!", 1).show(); //对比错误就提示

那么接下来就简单了,直接去掉对比就行了:
2.jpg
 iget-object v1, p0, Lcom/drivetest/lukaoyi/SeriaNumberActivity$1;->this$0:Lcom/drivetest/lukaoyi/SeriaNumberActivity; 
    iget-object v1, v1, Lcom/drivetest/lukaoyi/SeriaNumberActivity;->seriaNumber:Ljava/lang/String;
    invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
    move-result v0
    if-eqz v0, :cond_0 //判断比较结果,这个删除了就不管比较结果怎么样,点击按钮直接进入。


如果想要看正确的注册码是什么,那么只要在判断那里(删除了)跳转到后面提示框,并把提示框的内容修改为序列号,弹框完成后跳转回判断语句所在地方,保存注册码进入主界面。
修改后的:
.method public onClick(Landroid/view/View;)V
    .locals 3

    .prologue
    .line 62
    :try_start_0
    iget-object v0, p0, Lcom/drivetest/lukaoyi/SeriaNumberActivity$1;->this$0:Lcom/drivetest/lukaoyi/SeriaNumberActivity;

    iget-object v0, v0, Lcom/drivetest/lukaoyi/SeriaNumberActivity;->editText:Landroid/widget/EditText;

    invoke-virtual {v0}, Landroid/widget/EditText;->getText()Landroid/text/Editable;

    move-result-object v0

    invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;

    move-result-object v0

    .line 63
    const-string v1, "ddd"

    iget-object v2, p0, Lcom/drivetest/lukaoyi/SeriaNumberActivity$1;->this$0:Lcom/drivetest/lukaoyi/SeriaNumberActivity;

    iget-object v2, v2, Lcom/drivetest/lukaoyi/SeriaNumberActivity;->seriaNumber:Ljava/lang/String;

    invoke-static {v1, v2}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
    
      
    .line 64
    iget-object v1, p0, Lcom/drivetest/lukaoyi/SeriaNumberActivity$1;->this$0:Lcom/drivetest/lukaoyi/SeriaNumberActivity;

    iget-object v1, v1, Lcom/drivetest/lukaoyi/SeriaNumberActivity;->seriaNumber:Ljava/lang/String;

    invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
    
 

    move-result v0

    goto :cond_0

    :okbroken
    .line 65
    iget-object v0, p0, Lcom/drivetest/lukaoyi/SeriaNumberActivity$1;->this$0:Lcom/drivetest/lukaoyi/SeriaNumberActivity;

    iget-object v0, v0, Lcom/drivetest/lukaoyi/SeriaNumberActivity;->sharedReg:Landroid/content/SharedPreferences;

    invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;

    move-result-object v0

    .line 66
    const-string v1, "ISREG"

    const-string v2, "1"

    invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences$Editor;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor;

    .line 67
    invoke-interface {v0}, Landroid/content/SharedPreferences$Editor;->commit()Z

    .line 68
    new-instance v0, Landroid/content/Intent;

    invoke-direct {v0}, Landroid/content/Intent;-><init>()V

    .line 69
    iget-object v1, p0, Lcom/drivetest/lukaoyi/SeriaNumberActivity$1;->this$0:Lcom/drivetest/lukaoyi/SeriaNumberActivity;

    const-class v2, Lcom/drivetest/lukaoyi/MainActivity;

    invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->setClass(Landroid/content/Context;Ljava/lang/Class;)Landroid/content/Intent;

    .line 70
    iget-object v1, p0, Lcom/drivetest/lukaoyi/SeriaNumberActivity$1;->this$0:Lcom/drivetest/lukaoyi/SeriaNumberActivity;

    invoke-virtual {v1, v0}, Lcom/drivetest/lukaoyi/SeriaNumberActivity;->startActivity(Landroid/content/Intent;)V

    .line 71
    iget-object v0, p0, Lcom/drivetest/lukaoyi/SeriaNumberActivity$1;->this$0:Lcom/drivetest/lukaoyi/SeriaNumberActivity;

    invoke-virtual {v0}, Lcom/drivetest/lukaoyi/SeriaNumberActivity;->finish()V

    .line 79
    :goto_0
    return-void

    .line 73
    :cond_0
    iget-object v0, p0, Lcom/drivetest/lukaoyi/SeriaNumberActivity$1;->this$0:Lcom/drivetest/lukaoyi/SeriaNumberActivity;

     iget-object v1, p0, Lcom/drivetest/lukaoyi/SeriaNumberActivity$1;->this$0:Lcom/drivetest/lukaoyi/SeriaNumberActivity;

    iget-object v1, v1, Lcom/drivetest/lukaoyi/SeriaNumberActivity;->seriaNumber:Ljava/lang/String;

   # const-string v1, "\u5e8f\u5217\u53f7\u9519\u8bef\uff0c\u8bf7\u68c0\u67e5\u540e\u91cd\u65b0\u8f93\u5165\uff01"

    const/4 v2, 0x1

    invoke-static {v0, v1, v2}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;

    move-result-object v0

    invoke-virtual {v0}, Landroid/widget/Toast;->show()V
    :try_end_0
    .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0

    goto :okbroken
    goto :goto_0

    .line 75
    :catch_0
    move-exception v0

    .line 77
    invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V

    goto :goto_0
.end method



另外,我们来看这个序列号是怎么样生成的:
在SeriaNumberActivity里面我们可以看到:

this.seriaNumber = localEncryptionAlgorithm.MD5("yIDA1234");

而EncryptionAlgorithm.md5是这样的:
public String MD5(String paramString)
  {
    try
    {
      MessageDigest localMessageDigest = MessageDigest.getInstance("MD5");
      localMessageDigest.update(paramString.getBytes());
      byte[] arrayOfByte = localMessageDigest.digest();
      StringBuffer localStringBuffer = new StringBuffer("");
      for (int i = 0; i < arrayOfByte.length; i++)
      {
        int j = arrayOfByte[i];
        if (j < 0)
          j += 256;
        if (j < 16)
          localStringBuffer.append("0");
        localStringBuffer.append(Integer.toHexString(j));
      }
      String str = localStringBuffer.toString().substring(8, 24);
      return str;
    }
    catch (NoSuchAlgorithmException localNoSuchAlgorithmException)
    {
      localNoSuchAlgorithmException.printStackTrace();
    }
    return "";
  }
也就是序列号为“yida1234”md5加密后取第8到24这一段的内容。




这个网盘里面的apk都可以拿这种方法试一试:http://pan.baidu.com/share/home?uk=3389337036&view=share#category/type=0


破解完成的apk上传中。


发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Hmily 发表于 2015-6-5 12:06
以解决论坛用户问题为申请理由挺好,可惜你没写格式啊?邮箱都哪去了?
吾爱游客  发表于 2015-6-5 13:43
Hmily 发表于 2015-6-5 12:06
以解决论坛用户问题为申请理由挺好,可惜你没写格式啊?邮箱都哪去了?

@Hmily
那天点了发表帖子后才发现,但是审核中,编辑不了,于是重新提交了一份。

点评

可能发现重复就被删了,邮箱是什么?  详情 回复 发表于 2015-6-5 18:00
Hmily 发表于 2015-6-5 18:00
游客 113.66.157.x 发表于 2015-6-5 13:43
@Hmily
那天点了发表帖子后才发现,但是审核中,编辑不了,于是重新提交了一份。

可能发现重复就被删了,邮箱是什么?
吾爱游客  发表于 2015-6-6 15:22
Hmily 发表于 2015-6-5 18:00
可能发现重复就被删了,邮箱是什么?

邮箱是:gyluci2@163.com
{:1_914:}
Hmily 发表于 2015-6-6 16:42
ID:7ktest
邮箱:gyluci2@163.com

申请通过,欢迎光临吾爱破解论坛,期待吾爱破解有你更加精彩,ID和密码自己通过邮件密码找回功能修改,请即时登陆并修改密码!
登陆后请在一周内在此帖报道,否则将删除ID信息。
7ktest 发表于 2015-6-8 09:15
Hmily 发表于 2015-6-6 16:42
ID:7ktest
邮箱:

感谢,已经登录,在此报到。  
7ktest 发表于 2015-6-9 09:04
纠正一下,注册码的生成是:序列号+yida1234 进行md5加密取8到24位这一段内容。
已破解的apk在:链接:http://pan.baidu.com/s/1c0Ams7I 密码:bvck
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-15 05:05

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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