基本组成如图2所示。scm用到的数据包括敏感数据和一般数据。敏感数据是指密钥、用户pin码等数据。scm的程序逻辑可分为密码算法(对称和非对称的)、密码协议(例如ssl、ipsec等)以及其它程序控制逻辑。利用逆向工程的工具和技术,攻击者可以监控程序的输入和输出,从而获得用户口令等敏感信息;其次攻击者还可以扫描程序数据区,得到密钥、口令信息;另外攻击者对程序的运行逻辑进行跟踪,可以得到密码算法和密码协议的运行轨迹,特别是如果算法和协议不是公开的,而是保密的,这时攻击者可以得到重要信息。而且攻击者还可以进一步修改软件执行逻辑,制造“后门”。