[调试逆向] 本田思域等部分车型车机破解详解

a1辅助网提供[调试逆向] 本田思域等部分车型车机破解详解的下载地址,长期提供破解软件,各种线报福利等,31502是一个很好的福利资源网站

帖子看到了,在哪里领本田车?
直接就收藏,然后看看自己的共享单车,猛男落泪
我也是通过bugs2000的帖子破解成功的
分享几个还没有用过的授权码
具体操作如下:
1.车载连接手机热点
2..点击应用列表-浏览器-输入网址hondamaster.cn
3.输入
授权码:0461469696 (未使用)
授权码:0469858304 (未使用)
授权码:0515995648 (未使用)

[调试逆向] 本田思域等部分车型车机破解详解昨天看了老哥@bugs2000 的帖子受益匪浅,测试了一番最终拿到码,码的格式是XXXX-XXXX
老哥帖子的送门:https://www.a1fz.com/thread-1275440-1-1.html

这几天有几个朋友在问这个怎么操作的,这里发个贴回复下。
关于其他厂商的其他车型,小弟也是无能为力的
至于加密函数是如何找到的。。这个还要问老哥咯。大概就是用MT管理器的arsc编辑器从resources.arsc中找“设备ID”的属性ID,在DEX文件中就找到了m.java,反编译之后就找到了加密函数


【不知道是否违规,如有请斑竹从轻处理。】

autohack目前支持车型:十代思域、CRV、冠道、URV、CDX。 破解后如果装太多的应用会有点卡顿,毕竟不是什么好配置。
破解有风险,有些地方4S可能挑问题。
破解后恢复出厂设置即可取消破解。
仪表盘显示导航:目前仅支持思域,车机需要安装高德地图车机版3.1以上版本。
如果你对怎么修改的没有兴趣的话,请下载APP后跳到步骤②

车机破解后支持的功能【以19思域为例】:
1.应用安装和卸载。(酷狗、高德、百度、爱奇艺、优酷等车机版应用都可以安装)
2.方向盘和大屏按键功能键修改
3.开机自动点同意按钮,指定开机运行的APP
4.仪表盘显示导航
5.管理车机应用的开机自启动
6.车机优化(解除原车USB/HDMI/DVD行车视频播放限制)
7.开启车机无限ADB连接

需要的工具:U盘+NP管理器MP管理器车机APP原版地址:https://wwa.lanzous.com/b03z0fsfc 密码:52pj

本帖中APP版本:4.8.16
测试车型:19款思域劲动版

测试环境:联通4G热点


NP-修改机器码变量
本段内容,是利用NP管理器修改软件中的机器码变量来计算出注册码,需要一键添加解密log
和之前一样m.smali文件中的注册码判断a函数。【有能力的大佬可以帮忙写个注册机】
比如得出机器码为9999999的注册码前缀为2AA3

[Java] 纯文本查看 复制代码
    public static boolean a(Context context, String str) {          if (str == null || !h(context)) {              return false;          }          String b = b(context);          String[] split = str.split("-");          if (split == null || split.length != 2 || split[0].length() != 4 || split[1].length() != 4) {              return false;          }          int hashCode = (a() + b).hashCode();//a是google.com  b就是机器码  hashCode计算hashCode()          hashCode = ((hashCode / 4) * 113) + ((hashCode * hashCode) + (53 / hashCode));          hashCode = (((hashCode & -65536) >>> 16) + (hashCode & 65535)) & 65535;          NPLogEncryptString.NPPrintFuncSrc("%04X");//这里是用NP管理器添加的解密log功能          b = String.format("%04X", new Object[]{Integer.valueOf(hashCode)});          NPLogEncryptString.NPPrintFuncSrc(b);//输出前缀          String str2 = split[0];          NPLogEncryptString.NPPrintFuncSrc(str2);//后缀,可有可无          return b.compareToIgnoreCase(str2) == 0;      }

咱们从计算hashCode之前就把机器码修改了,所以在m.smali中添加修改b变量

[Java] 纯文本查看 复制代码
.method public static a(Landroid/content/Context;Ljava/lang/String;)Z      .registers 10        const v7, 0xffff        const/4 v6, 0x4        const/4 v1, 0x1        const/4 v0, 0x0        if-nez p1, :cond_9        :cond_8      :goto_8      return v0        :cond_9      invoke-static {p0}, Lcn/autohack/hondahack/m;->h(Landroid/content/Context;)Z        move-result v2        if-eqz v2, :cond_8        invoke-static {p0}, Lcn/autohack/hondahack/m;->b(Landroid/content/Context;)Ljava/lang/String;        move-result-object v2        const-string v2, "9999999"      #这里把文本型V2修改了为你所需要的机器码        invoke-static {v2}, Lnp/NPLogEncryptString;->NPPrintFuncSrc(Ljava/lang/String;)V           #输出V2 就是输出虚拟的机器码        const-string v3, "-"        invoke-virtual {p1, v3}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;        move-result-object v3        if-eqz v3, :cond_8        array-length v4, v3        const/4 v5, 0x2        if-ne v4, v5, :cond_8        aget-object v4, v3, v0        invoke-virtual {v4}, Ljava/lang/String;->length()I        move-result v4        if-ne v4, v6, :cond_8        aget-object v4, v3, v1        invoke-virtual {v4}, Ljava/lang/String;->length()I        move-result v4        if-ne v4, v6, :cond_8        new-instance v4, Ljava/lang/StringBuilder;        invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V        invoke-static {}, Lcn/autohack/hondahack/m;->a()Ljava/lang/String;        move-result-object v5        invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;        move-result-object v4        invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;        move-result-object v2        invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;        move-result-object v2        invoke-virtual {v2}, Ljava/lang/String;->hashCode()I        move-result v2        mul-int v4, v2, v2        const/16 v5, 0x35        div-int/2addr v5, v2        add-int/2addr v4, v5        div-int/lit8 v2, v2, 0x4        mul-int/lit8 v2, v2, 0x71        add-int/2addr v2, v4        and-int v4, v2, v7        const/high16 v5, -0x10000        and-int/2addr v2, v5        ushr-int/lit8 v2, v2, 0x10        add-int/2addr v2, v4        and-int/2addr v2, v7        const-string v4, "%04X"        invoke-static {v4}, Lnp/NPLogEncryptString;->NPPrintFuncSrc(Ljava/lang/String;)V   #输出"%04X"        new-array v5, v1, [Ljava/lang/Object;        invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;        move-result-object v2        aput-object v2, v5, v0        invoke-static {v4, v5}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;        move-result-object v2        invoke-static {v2}, Lnp/NPLogEncryptString;->NPPrintFuncSrc(Ljava/lang/String;)V       #前缀,这个就是你的机器码的注册码        aget-object v3, v3, v0        invoke-static {v3}, Lnp/NPLogEncryptString;->NPPrintFuncSrc(Ljava/lang/String;)V      #后缀,没啥用        invoke-virtual {v2, v3}, Ljava/lang/String;->compareToIgnoreCase(Ljava/lang/String;)I        move-result v2        if-nez v2, :cond_8        move v0, v1        goto :goto_8  .end method  

把b函返回的V2 9999999修改成你车机的机器码,修改完smali文件之后,保存,安装APP到手机上并打开,输入车机的机器码,按照之前的操作操作一遍,即可在/NP/logs/*.txt文件中找到你的注册码


以下是之前的帖子。


需要的工具:U盘+NP管理器MP管理器车机APP原版地址:https://wwa.lanzous.com/b03z0fsfc 密码:52pj

步骤①:用NP管理器反编译原版APP制作共存包并添加LOG【如果已经有制作号的APP,请跳过】

问:为什么要做共存?答:为了防止车机安装不了。

问:为什么要反编译?答:因为我不太懂java写不出注册机。

①、制作共存:NP管理器中,找到原版APP,并点击,依次点击“功能”-“APK共存”-“确定”

②、反编译:点击共存APP,依次点击“功能”-“一键注入解密字符串”,勾选“是否需要写到本地文件夹”,点击”确定“,等待NP制作APP(一般来讲LOG会保存在内存/NP/logs/文件夹中)

         
点击共存后注入LOG的APP,点击“查看”,选择“classes.dex”,“DEX编辑PLUS
搜索-发起新搜索【04X】-选择类型为“字符串”,点击”确定“,
         
搜索到的结果中依次展开,点击“m”,进入m.smali编辑【这里的文件有可能是不一样的,老哥的教程中是pb.smali,有可能是版本不太一样吧】
         
找到“04X”相关代码【这里可以用右上角的搜索】
         
依次在前缀和后缀下面一行代码中添加代码

[Java] 纯文本查看 复制代码
invoke-static {变量}, Lnp/NPLogEncryptString;->NPPrintFuncSrc(Ljava/lang/String;)V[/align][align=left]  
         
【PS:部分版本的代码可能不一样,请自行测试其他版本】
返回并且“保存”代码,再返回“保存并退出”DEX文件,再返回安装共存_加LOG_改smali的安装包

③、测试:并打开APP【如果你手机ROOT了,那请不要赋予ROOT权限】。滑动到最下面,点击“升级到专业版,输入类似“XXXX-XXXX”的激活码【X为任意数字或者字母,或者就是XXXX-XXXX】

         
当提示你“注册码不正确”的时候,我们回到NP管理器,找到刚刚LOG输出的目录/NP/logs/,
         
打开_log_str.txt文件,滑动到最下面
         

由此得出手机的注册码,但是我们需要的是车机的注册码,下一步就破解车机,APP放入U盘


步骤②:手机开启热点(或用家里的wifi),车机连接网络破解车机

①、破解车机:打开某远程root网站,autohack点cn,点开始,输入8888888888(10个8)或者0946993636,开始破解。【某些地区的DNS解析可能会有问题导致十几分钟还无法破解,多换换运营商试试】

         

②、安装共存包:等待几分钟破解完成后,打开黑科技,安装本地APP,选择之前做好的共存包,安装

③、安装文件管理器:黑科技-联网安装-腾讯文件管理器【也可以用U盘安装NP或者MT或者腾讯都可以,用来查看log文件】

④、取车机注册码:打开第二个黑科技APP【容易混淆,这里建议把共存包改名,之后讲】,激活专业版,输入类似“XXXX-XXXX”的激活码【X为任意数字或者字母,或者就是XXXX-XXXX】

         

⑤、得到注册码:打开/np/logs/文件夹,打开txt文件,查看注册码并拍照保留。

         

⑥、激活专业版:打开原版黑科技,输入注册码激活专业版,

⑦、卸载共存包:我是从系统设置,详细-应用列表中找到使用数据最少的那个卸载的【也可以不卸载,就是因为又可能会混淆,所以建议把共存包改个包名】

            

OK,如果你是跳过来看的那么,自此处就结束了。

补充:用MT管理器的Arsc编辑器完成共存包包名修改

①、MT管理器查看共存包,点击“resources.arsc”-Arsc编辑器-“搜索资源值”-“本田”-字符串-“确定”
        
②、返回,保存并退出,确定更新,
修改包名的共存包就制作好了

[调试逆向] 本田思域等部分车型车机破解详解

2020-9-30 14:02:51新增补充:
看了下点评大佬说的,试了下写注.册.机,不太会JAVA,所以用的是E4A的接口函数,稍微改了下a函数就能完成。具体代码个注.册.机这里就不发了。大家动动手操作下。
奇怪。多出来的图片怎么删除。。

部分文章来自互联网,侵权删除www.a1fz.com/

www.a1fz.com A1fz网专注于福利分享,各种破解软件学习资料,视频教程等等,如有侵权告知管理员删除
A1fz.com,福利吧,宅男福利,宅男,福利社,福利,有福利 » [调试逆向] 本田思域等部分车型车机破解详解

发表评论