吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8737|回复: 10
上一主题 下一主题
收起左侧

[Android 原创] GPS Pro 1.4(beta 8)逆向调试算号破解笔记

  [复制链接]
跳转到指定楼层
楼主
qtfreet00 发表于 2015-5-12 14:47 回帖奖励
本帖最后由 世事繁华皆成空 于 2015-5-12 14:50 编辑

原创:世事繁华皆成空
工具:ddms,apkide,海马玩模拟器
软件地址:http://apk.r1.market.hiapk.com/d ... ojectgps_051308.apk

有朋友反馈,地图无法显示,我估摸着是不是key校验的问题,找到manifest文件下发现使用的是腾讯的地图,自己跑到腾讯地图api下,自己也申请了一个key
发现这个key跟包名,签名并没有联系,那估计就是软件自身的设置或者其它问题了

顺带着也研究了新的一种破法,当然算法我就不告诉大家了,自己研究,主要讲方法,安装软件,打开


我们点击注册,


我们估计软件大概采用了硬件码再加密算号生成,我们任意输入一个错误的注册码


我们apkide反编译后搜索“注册码错误”

[Java] 纯文本查看 复制代码
public void onClick(View paramView)
  {
    if (this.val$regEditText.getText().toString().trim().toUpperCase().equals(Algorithm.info(DisplayActivity.access$100(this.this$0))))
    {
      DisplayActivity.access$101(this.this$0, 1);
      paramView = new ContentValues();
      paramView.put("key", this.val$regEditText.getText().toString().trim().toUpperCase());
      paramView.put("period", "0");
      paramView.put("remark", "58E52C1E37311A4D5857");
      DisplayActivity.access$68(this.this$0).update("configure", paramView, null, null);
      this.val$popSign.dismiss();
      new AlertDialog.Builder(this.this$0).setIcon(2130837615).setTitle("����").setMessage("��������������������").setPositiveButton("����", null).show();
      return;
    }
    new AlertDialog.Builder(this.this$0).setIcon(2130837651).setTitle("����").setMessage("������������������������").setPositiveButton("����", null).show();
  }


我们看到,当this.val$regEditText.getText().toString().trim().toUpperCase().equals(Algorithm.info(DisplayActivity.access$100(this.this$0)))相等后会来到成功条件下,我们来到Algorithm.info方法下

我们看到了软件调用了MD5的加密方法,而且调用了很多次
[Java] 纯文本查看 复制代码
public static String info(String paramString)
  {
    return MD5_16(new StringBuilder(String.valueOf(MD5_32(MD5_16(new StringBuilder(String.valueOf(MD5_32(new StringBuilder(String.valueOf(MD5_16(new StringBuilder(String.valueOf(paramString)).append("gps").toString()).substring(3))).append("871006").toString()).substring(3))).append("sqs").toString()).substring(3)).substring(2, 15))).append("pk").toString()) + MD5_32(new StringBuilder(String.valueOf(MD5_32(MD5_16(new StringBuilder(String.valueOf(MD5_32(new StringBuilder(String.valueOf(MD5_32(new StringBuilder(String.valueOf(paramString)).append("gps").toString()).substring(3))).append("880612").toString()).substring(3))).append("zzj").toString()).substring(3)).substring(2, 15))).append("zj").toString()).substring(2, 6);
  }


既然该方法会返回一个string类型的数据,不如我们就查看一下数据是什么,通常在软件开发的时候会经常试用ddms的logcat查看软件方法的调用,这个地方我也利用ddms打印log
[Java] 纯文本查看 复制代码
    move-result-object v0

    const-string v1, "TAG"

    invoke-static {v1,v0} ,Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I


smail代码下,最后将加密后的string类型的数据存放到v0中,我添加一个标记符“TAG”,然后打印出来,包装完成后回编译,

如何试用ddms,需要安装sdk环境,如果没有的请下载一个sdkmanager或者eclipse,然后打开后安装必要的组件,如下图

打开tool目录下的monitor,会成功打开ddms,然后再运行模拟器,切记打开之后再运行模拟器,再logcat下新建一个


上方的filter name随意,下方建议选择包名,之后就可以模拟器运行软件了

运行后成功在logcat中生成一个字符串,


看似像注册码一样,我们试试

点击注册




算法已经在上面出现过了,大家自己研究下md5加密,我就不解释了,只要硬件码不变,大家就可以试用带log的软件生成注册码后,再安装原版apk,输入注册码,无需破坏软件签名,直接注册成功了

教程结束,@淡然出尘 @Hmily




免费评分

参与人数 6威望 +1 吾爱币 +1 热心值 +5 收起 理由
极大的石头 + 1 + 1 热心回复!
治愈先生 + 1 希望楼主能出个注册机
B6B6B6 + 1 支持!!!
剑哥 + 1 能否录些ApkIDE的操作视频,谢谢
淡然出尘 + 1 给你多加CB...hhh~~
wokl168 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.

查看全部评分

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

沙发
丶小蓝丶 发表于 2015-5-12 14:51
不错支持一下...功能咋样
3#
临轩听雨 发表于 2015-5-12 15:22
4#
soulovess 发表于 2015-5-13 16:31
5#
剑哥 发表于 2015-5-13 21:09
楼主:
能否破解下“通图数据采集软件【安卓版】”这个APK
http://pan.baidu.com/s/1hqAJmAS
6#
lthink 发表于 2015-6-6 06:47
看帖看完了至少要顶一下,还可以加入到淘帖!
7#
神童 发表于 2015-6-18 14:39
非常厉害,谢谢~~~~~~~~~~`
8#
kangtr 发表于 2015-6-19 23:48
破解版软件呢,出个注册机也行啊
9#
a1171610056 发表于 2015-6-20 20:57
唉,希望各位能够什么时候出个ddms的使用方法,完全不会的说
10#
c_ailu001 发表于 2015-9-20 23:19
牛人,谢谢你。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 09:00

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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