mt4 mt5协议 跟单
作者:互联网
mt4 协议
# exe特征
const CLIENT_SIZE: u32 = 0x953dbed3;
# 版本号 可设任意平台版本号
const BUILD: u16 = 1353;
# key hash
0 => modify_key_sha256_mt_complex(&data, &result),
1 => modify_key_sha256_mt_login(&result),
2 => modify_key_sha256_mt_type(&result),
3 => modify_key_md5_mt_random(&data, &result),
4 => modify_key_swap_pair(&result),
5 => modify_key_sha1_mt_type(&result),
6 => modify_key_not_even(&result),
7 => modify_key_not_odd(&result),
8 => modify_key_sha256_mt_build(&result),
9 => modify_key_crypt_key(&result),
10 => modify_key_swap_all_bytes(&result),
11 => modify_key_md5_mt_complex(&data, &result),
12 => modify_key_sha256_mt_random(&data, &result),
13 => modify_key_not_bytes(&result),
14 => modify_key_sha1_mt_complex(&data, &result),
15 => modify_key_sha256_mt_session(&result, session),
# mt4 mt5 协议, 策略、跟单定制开发, linux 服务器运行 可托管ny4、ld4机房,控制端可web或windows,mac,linux桌面, v: x_x__7
# md5_mt_complex
fn modify_key_md5_mt_complex(&self, data: &[u8], hash: &[u8]) -> Vec<u8> {
let mut result = BytesMut::with_capacity(97);
result.put_u8(0);
result.put_slice(b"MTComplex");
result.put_u8(0);
result.put_u16_le(self.build);
result.put_slice(hash);
result.put_slice(data);
result.put_u32_le(self.user);
return crypt::md5(&result[..]);
}
fn modify_key_sha256_mt_login(&self, hash: &[u8]) -> Vec<u8> {
let mut result = BytesMut::with_capacity(28);
result.put_u32_le(self.user);
result.put_slice(hash);
result.put_slice(b"MTLogin");
result.put_u8(0);
return crypt::key_sha256(&result[..]);
}
fn modify_key_sha256_mt_type(hash: &[u8]) -> Vec<u8> {
let mut result = BytesMut::with_capacity(24);
result.put_u8(0);
result.put_slice(hash);
result.put_slice(b"MTType");
result.put_u8(0);
return crypt::key_sha256(&result[..]);
}
标签:跟单,modify,mt4,mt5,mt,result,key,put,sha256 来源: https://www.cnblogs.com/fr5s/p/16518747.html