theseventhson

  上次用ida标记unidbg trace得到的指令时遇到如下报错:

from PyQt5 import QtCore, QtWidgets, QtGui
ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。

  当时就有好些小伙伴给我支招,我尝试后发现确实可以,这里感谢各位热心小伙伴的支持!具体做法如下:

    (1)先把ida安装目录下有个python目录设置为环境变量

    (2)再用pip install sark安装依赖包

   因为我装了好几个版本的python,用pip装的时候老是自动装到其他python的目录,所以每次用idapython执行脚本都报错;这次装的时候指定sark的安装目录:pip install --target=D:\xxxx\xxxx\xxxx\Lib\site-packages sark(注意:一定要在site-package目录下安装),装好后再用ida执行patch脚本就ok了!经过脚本的作色后,再静态分析代码,发现还是不对:作色(也就是执行过)的代码数量不多,目测不超过15%,感觉不对劲:就算有OLLVM混淆,也不至于才执行了这么一点代码呀!再去分析trace日志,特么发现后面又遇到了循环,只不过这次循环的范围要大一些,前后间隔了100多条指令,都是B指令跳来跳去, 怎么办了?如果强制改跳转逻辑,万一改变了原有正确的逻辑咋办? 如果不改逻辑又一直“鬼打墙”式地循环(个人猜测是某些逻辑不满足,导致一直循环),咋整? 模拟器毕竟是模拟器,要100%完全模拟真实的硬件和依赖的软件环境是很难的,哎~~~~

  既然已经确认metasec和sscronet有”作案嫌疑“,现在的问题就是确认这两个so里面的加密代码了。我们回到逆向最初抓取的数据,四个关键字段的样本如下:

"X-Argus":"dL63f9K4krgr8/WAfSIFeVfdfEcxLb0IszYsoVzV1+5/iO2yRYjhPTcNpp9D3PjyivcgIe5KYrbCD11veS20EKiNAqOk3bOJzl+L386i+SWzP8rAnbbqxfvkUWtO5Bc0oVLuMQ4MlA77tSKmgN23uBxTq0RgPvcEUxC9H2P9tKCiXcL85uubNM7L1FOAsHAEvNe+83Y341uq5UdMLixTXC5u21bYeHkr7SBBDFEWGQz7WDOfte4Tvq4ZyoIydKGHNlFb3tJUFav8IBrm/Fq3NgLq1WdP5h6eIzPoXKgs1/amjaNItSFY7POOz1qNLD/9fgJbj+f43UFI9kZzssJ8zfVj",
"X-Gorgon":"0404b8790005f2914fd644447ffb0acf11a197e54adb11afa680",
"X-Tyhon":"iXwqufMrDfPxVRKC1zs/8P8NUvLqKS2QsxUO15g=",
"X-Ladon":"wp8eCaQGfmHoPa38jhEcD+4ADTjDGs0I83D+1lWfekKesKn+",

  我们挨个分析:

  •   X-Argus:从加密后的结果看,大小写字母、数字都有,除了末尾没有==号外,其他的特征是不是和base64很像啊? 同理,X-Tyhon和X-Ladon是不是也和base64编码后长得很像啊?
  •        X-Gorgon: 从加密后的结果看,有数字、有字母,但字母都都是小写,没有其他任何字符了,这是不是和MD5/sha等hash散列很像啊

  X音的研发人员会不会直接用这些现成的加密算法去加密字段了?

分类:

技术点:

相关文章: