MT4客户端通讯分析——登录部分
旧版本及基本流程可参考 MT4Develop 的 https://blog.csdn.net/MT4Develop/article/details/51250318,
本文针对build 1170 版本。
注:本文只发布极少部分与mt4/vmprotect相关的技术分析及不完整可用的相关代码,无法直接被引用。以此表明本文只作技术研究及分析交流意图,任何间接产生的非法使用与本作者无关,自行承担风险与责任。
此版本mt4使用vmprotect 3.3.x 加壳,开启了全面的反逆向功能,并对关键操作及算法进行虚拟化。
MT4Develop 分析的登陆部分中,包与登陆交互逻辑大多仍然正确,但犹为关键的是第2字节被称为rndcode(取时间为种子的随机码)已经不在正确。在此版本mt4中,该字节在虚拟机中计算并写入,是与user_id(login), build, client_type, packet_type(offset 0 byte)相关的简单效验码,在此改称crc_code。以下是分析过程,为了便于阅读,使用了截图
最终计算方法为:
int tmp = (pck->