-
-
分析一个前段时间中招的恶意木马
-
发表于:
2024-6-23 15:06
11186
-
之前下载某个软件的时候,有点不对劲,六七百M,但是还是双击打开了,后来这个东西释放/下载了一些木马文件下来,Defender告警了,我才发现有问题,后来github的号都被盗了,非常的气愤,接下来分析一下这个小马。
Sha256
d77f0490f9c921baad0015c1eec2cafe1021814c8c28dee10a93179476fcb366
是C/C++写的,直接IDA,IDA帮我自动跳到main函数。
很好,不出意料,这个问题修改一下cfg先解决一下。
很好,完全看不懂(这里其实至少可以看出有bcf在的,bcf也是ollvm里的一种混淆措施,不懂的可以google下,太基础的不讲了)
虽然看着比较吓人,但是稍微仔细看一下会发现,分发块的TRUE分支对应的真实块,
几乎所有的真实块最后都链接到LoopEnd(LoopEnd是啥可以看一下ollvm的源码,这里不细讲,资料比较多)。
定位到StateVar(控制流平坦化的相关概念)被赋值的指令,然后找这个值对应的真实块,然后Patch就好了,但是写代码很吃细节(特别魔改过的ollvm),因为容易错,特别是大函数,编译器也瞎jb优化,有时候标准的ollvm自动优化成不标准的了。
控制流很清晰,但是还是有bcf在,逻辑几乎还是看不了。
仔细研究下,其实每个函数都有2个bcf变量(ollvm好像全局只有2个bcf变量,有点忘了),用来构造恒成立不等式的,这里有10个,因为他核心的混淆函数只有五个。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2024-6-23 15:13
被ookkaa编辑
,原因: