两种姿势批量解密恶意驱动中的上百条字串
于是,我们 Hook 掉指令模仿进程中的 UC_MEM_WRITE 操纵,即可获取解密后的字节,并将这些字节手动 Patch 到 IDB 中:
Patch IDB 的根基操纵虽然是像前文中 IDAPython 剧本那样,挪用 idc.PatchXXX 函数写入 IDB 文件。前面第一个姿势中,Patch IDB 文件,只挪用了一个 idc.PatchByte() 函数。着实,idc 库中共有 4 个函数可以 Patch IDB:
指令模仿器中执行 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 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |