一个锁机木马的逆向分析 1.1 前言 手机勒索软件是一种通过锁住用户移动设备,使用户无法正常使用设备,并以此胁迫用户支付解锁费用的恶意软件。 手机勒索软件主要通过将手机触摸屏部分或虚拟按键的触摸反馈设置为无效,使触摸区域不响应触摸事件。
1.2 实例分析 通过上面我们可以看出,锁机马的几个重要信息,一个是勒索者的联系方式,另一个比较重要的信息就是随机解锁码。今天我们来分析一个锁机木马,通过静态分析和动态调试结合的方式,此程序完全不需要动态调试,但是你会发现通过动态调试会使分析过程更加清晰,高效。 1.3 静态分析代码 1.3.1 整体概览
首先静态分析一下此程序的功能,从程序的入口点处,找到了此锁机马的核心判断函数。它首先是随机生成一个序列号,然后将我们输入的字符串与encryption01.MyEncryption将序列号进行加密后的返回值进行比较,如果相等返回”You Win!”,如果不相等返回"What apity!"
1.3.2 MyEncryption分析 然后看一下MyEncryption这个函数的具体实现过程。
从上面来看,逻辑还是比较简单,首先是定义加密算法"MD5","SHA-1", "SHA-256", "SHA-384"这几个中的一个,然后将序列号进行加密,然后把 AabRcQPXdYVeTWUSfghijklCmDnEoGpqFrHsItKJLuvwxyz01M23O45N67Z89B这个字符串作为检索字符串,通过indexOf函数来索引加密后的字符串,并将返回值作为解锁码。 1.4 动态调试 1.4.1 关键位置下断 此处用smali动态调试法,之前已经详细介绍过调试方法,就不再赘述。 通过前面的分析,需要在encryption01.MyEncryption调用之前下断,并且跟入函数进行分析。
1.4.2 触发断点并分析 随便输入注册码”test”,触发断点,然后跟入函数
通过动态调试的变量值发现,调用的加密算法是MD5加密,锁机序列号是wPIyuZAC0,当然这个序列号,木马的制作者会告诉受害者,受害者通过自己序列号去索要解锁码来解锁。这个加密后的字符串是 213296e4ecfb04fed63d621ca77971f5。到这一步可以说就已经拿到解锁码了,因为之前分析解锁码的生成过程是把 AabRcQPXdYVeTWUSfghijklCmDnEoGpqFrHsItKJLuvwxyz01M23O45N67Z89B这个字符串作为检索字符串,通过indexOf函数来索引加密后的字符串,并将返回值作为解锁码。所以剩下的工作就是判断一下返回值,可以人工判断也可以写个程序来跑一下,这里我通过程序得到 所以解锁码是5048515060561153。
|