SMC 初认识

SMC(Self-Modifying Code)是一种用于防止静态分析的加密技术,常见于病毒和壳中。它通过在运行时解密加密代码来规避检测。破解的关键在于获取解密key,例如通过简单的异或操作。本文介绍了SMC的利用方式,如与反调试手段结合及多层加密解密,并展示了使用IDApython进行代码破解的示例。

0x01 SMC简介

​ SMC(Self-Modifying Code)(自解码),就是先将一段代码先进行加密,在运行时再将该段代码解密,从而达成防止他人进行静态分析的目的。在很多的病毒中都有使用这种方法躲过病毒查杀,壳也是相类似的原理。

0x02 利用方式

  • 直接和常用的反调试手段结合
  • 通过多种方式加密解密代码,层层嵌套

0x03 破解方式

​ 要点在于得到解密的 key 值,一般是简单的异或,也可以用加密算法加密,但都是以获取 key 值为破解方法。

0x04 破解操作

​ 利用 IDA python 对加密的代码进行破解,参考的代码如下

def patch(start, end, key):
    n = 0
    while(start + n!=end + 1)
        addr = start + n
        PatchByte(addr, Byte(addr)^key[n % len(key)]  #修改一个字节
        n += 1
    print("code had been changed.")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值