加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

两种姿势批量解密恶意驱动中的上百条字串

发布时间:2019-04-26 06:05:14 所属栏目:建站 来源:JiaYu
导读:作者:JiaYu 转自公家号:信口杂谈 1. 概述 在 360Netlab 的旧文 《双枪木马的基本办法更新及响应撒播方法的说明》 中,提到了 双枪 木马撒播进程中的一个恶意驱动措施 kemon.sys ,个中有颠末自界说加密的 Ascii 字符串和 Unicode 字符串 100+ 条: 这在

于是,我们 Hook 掉指令模仿进程中的 UC_MEM_WRITE 操纵,即可获取解密后的字节,并将这些字节手动 Patch 到 IDB 中:

  1. def mem_hook(unicornObject, accessType, memAccessAddress, memAccessSize, memValue, userData): 
  2.     #if accessType == UC.UC_MEM_READ: 
  3.     #    print("Read: ", hex(memAccessAddress), memAccessSize, hex(memValue)) 
  4.     if accessType == UC.UC_MEM_WRITE: 
  5.         #print("Write: ", hex(memAccessAddress), memAccessSize, hex(memValue)) 
  6.         if memAccessSize == 1: 
  7.             idc.PatchByte(memAccessAddress, memValue) 
  8.         elif memAccessSize == 2: 
  9.             idc.PatchWord(memAccessAddress, memValue) 
  10.         elif memAccessSize == 4: 
  11.             idc.PatchDword(memAccessAddress, memValue) 

Patch IDB 的根基操纵虽然是像前文中 IDAPython 剧本那样,挪用 idc.PatchXXX 函数写入 IDB 文件。前面第一个姿势中,Patch IDB 文件,只挪用了一个 idc.PatchByte() 函数。着实,idc 库中共有 4 个函数可以 Patch IDB:

  1. idc.PatchByte(): Patch 1 Byte; 
  2. idc.PatchWord(): Patch 2 Bytes; 
  3. idc.PatchDword(): Patch 4 Bytes; 
  4. idc.PatchQword(): Patch 8 Bytes; 

指令模仿器中执行 Patch 的操纵,并不但有 PatchByte 这一项。按照我 print 出来的指令模仿进程中写内存操纵的细节,可以看到共涉及 3 种 Patch 操纵(如下图):1 byte、2 Bytes 和 4 Bytes,全部才有了上面 mem_hook() 函数中的 3 种 memAccessSize。

两种姿势批量解密恶意驱动中的上百条字串

明晰并办理了「体系 API Hook」和「捕捉指令模仿功效并 Patch IDB」这两点题目,就可以写出精确无误的 IDAPython 剧本了。

3.2.3 Radare2 ESIL 模仿

r2 上也有强盛的指令模仿模块,名为 ESIL( Evaluable Strings Intermediate Language):

两种姿势批量解密恶意驱动中的上百条字串

在 r2 上用这个对象来模仿指令解密这一批字符串,就不消像 IDA 中那样还要本身下手写 IDAPython 剧本了,只必要通过 r2 指令设置好几个相干参数即可。下面两张图是在 r2 中通过指令模仿批量解密这些字符串的前后比拟:

两种姿势批量解密恶意驱动中的上百条字串
两种姿势批量解密恶意驱动中的上百条字串

详细操纵要领就不细说了,有乐趣的伴侣可以自行试探。

4. 总结

文中先容两种根基要领,在 IDA 中批量解密 双枪 木马撒播中间环节的恶意驱动 kemon.sys 中的大量自界说加密字串:Python 实现解密函数和指令模仿解密函数。

道理都很简朴,先容的有点烦琐,但愿把每个要害细节都描写清晰了。

两种要领对应的 IDAPython 剧本,已上传到 Github,以供参考:https://github.com/0xjiayu/decrypt_CypherStr_kemonsys

5. 参考资料

https://en.wikipedia.org/wiki/Caesar_cipher

https://github.com/tmr232/idapython/blob/master/python/idc.py

https://unicorn-engine.org

https://github.com/36hours/idaemu

https://github.com/fireeye/flare-emu

https://github.com/unicorn-engine/unicorn/blob/master/bindings/python/unicorn/unicorn_const.py#L64

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读