MAC版E信心跳包加密KEY的逆向

本文记录了作者逆向MAC版E信心跳包加密KEY的过程,包括为何选择逆向MAC版而非Windows版的原因,以及如何通过IDA静态分析、查找关键函数和字符串,最终发现AES和3DES加密算法的KEY。文章还提到了加密模式的猜测和解密验证步骤。
摘要由CSDN通过智能技术生成

    在开始正题前先扯点别的吧,这篇博文本来应该在几个月前我还在校的时候就写的,但由于我当时懒得去写博客,加之在我逆向出MAC版E信心跳包加密KEY之后的下一周SimpleNetkeeper作者就在GitHub上公布了加密KEY,我就觉得写不写这篇博文也没太大要紧了,但现在回顾了下当时的逆向过程,发现我好多东西都已经不太记得了,趁还没有完全忘光之前,写下这篇博文作为记录,并且我也已经脱坑了,这篇博文还可以给各位还在坑里的人参考。

    正文之前先放一个讲Netkeeper拨号流程的分析博文的链接:https://sunflyer.cn/archives/239,此博文是SimpleNetkeeper作者写的,我就是读了这个才了解到心跳包这个东西的,以前写E信自由版时都不知道有心跳包这个东西,不过这也和当时湖北地区并未开启心跳服务器有关,湖北地区是后来才开启了心跳服务器。

    好了,正文开始,有人可能会问,为什么要去逆向MAC版E信?如果会逆向的话,直接去逆向Windows版本的E信岂不是更容易,但事实是如果使用壳检测工具会发现Windows版本的E信使用了VMP壳来保护程序,壳信息如下图


    并且windows版本E信有具有反调试、反RAM DUMP的能力,我这初入逆向大坑的小白怎么可能去脱掉VMP壳,还有我就会点静态分析,动态分析根本就没玩过。加上我听SimpleNetkeeper作者说过MAC版E信并未混淆或加壳,那我当然只有去逆向MAC版E信这一种选择了,逆向MAC版E信最大的难点就在于需要了解一点80x86汇编语言以及Objective-C语言的知识,如果你学过任何一种架构的CPU的汇编语言,那么你对其他架构的CPU的汇编语言其实也可以触类旁通,基本的指令每个架构的CPU指令集都会有,只不过是叫法以及使用方法不一样,比如我学过ARM汇编语言,对于80x86汇编语言我当时也只是看了两篇介绍80x86汇编语言以及80x86的CPU寄存器的博文后就开始去逆向MAC版E信了;另外就是Objective-C语言的问题了,学过任何一门面向对象的语言后对于其他面向对象的语言其实也是可以很快就能了解其大致内容的,计算机编程语言就是这么的微妙,它们基本上都是使用了同一个思想(比如面向对象的语言,其主要思想是面向对象,这句话好像是废话),只是具体实现不一样而已。

    MAC版E信的安装包是一个后缀为.pkg的文件,使用windows下的压缩软件可以打开,但打开后发现其只有一个名为Payload~的文件


    到网上搜到了如何在MAC下解压PKG文件,其先使用xar命令解压.pkg文件,然后使用cat命令和cpio命令,具体如下

xar -xf you_file.pkg
cat unpacked_file.pkg/Payload | cpio -i
    在MAC OS X下解压过程如下图

xar命令会把原始.pkg文件解压成app.pkg文件夹、Resources文件夹以及Distribution文件,然后cat命令加cpio命令会将app.pkg文件夹里的Payload文件处理成“E信.app”文件夹,在MAC下其将app.pkg文件夹当成文件,E信.app文件夹当成应用,在windows下查看就一目了然了,如下图


解压完成后MAC版E信的主程序在"E信.app\Contents\MacOS"文件夹下,文件名为“E信”,当时在搜索解压.pkg文件时貌似到网上看到过说能在liunx下解压MAC OS的.pkg文件,于是用linux试了下发现根本就没有xar命令,就放弃了用linux解压.pkg文件,现在我试了下在linux下使用tar命令解压.pkg文件,但还是解压不了,如下图



后来在windows下使用360压缩把Payload~文件解压出来再放到linux下直接使用cat和cpio命令发现可以成功解压


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值