给一个参考
原作者:konca
原理:
IMSI 可以说是一个移动用户的标识,每张正常SIM卡里的IMSI绝对是不同的
KI 是网络登录时使用的一个密钥,是不能直接读出来的(128 bit)
手机登录时将IMSI(或TMSI)发给网络,网络根据IMSI判断是否对该用户进行验证,如果肯定,则发一随机数RAND(128bit)给手机,手机转发给SIM,SIM收到RAND后,用KI作为密钥,通过A3A8算法运算出(SRES + Kc)( 32bit + 64bit)给手机,手机将SRES发给网络,网络自己做一次A3A8运算,如果自己得出的SRES与手机发回来的SRES是一致的,则认为该用户是合法用户,登录成功。 而Kc是留作后面进行语音通信时对数据进行加密用的。
kvSIM的原理就是 Hook (钩子) 了手机与SIM卡的通信接口,修改SIM返回的IMSI,并在补丁中进行A3A8运算,再把SIM返回的(SRES + Ki)替换掉。