现在比较实用的一款三方登录器就是“繽放”,里面实现了拿到真实密码的解密方案
我们来看一下,假如通过 OTP 接口得到如下两个示例密码:
# 因为每次获取的密码都不一致
BBB274FEDAC3E889F943083BBF72BCF9684E115A
54B76FD295DED3A1F34B9DC16D96302D774871F1
该加密方案使用的 DES
,MODE
为 ECB
如第一个密码,取前 8 位作为 Key
:BBB274FE
当前实际密文为:DAC3E889F943083BBF72BCF9684E115A
关掉 Padding
进行解密,如果直接进行解密结果是个乱码:y��L�m�\l;�4���������G�5i��
将 DAC3E889F943083BBF72BCF9684E115A
转换为 Binary:����;�r��hNZ
【同样是乱码】
再将转换结果用来解密,得到正确的明文密码:1309677659\000\000\000\000\000\000
末尾的几个 \000
直接 trim
一下:1309677659
用 PHP 代码示例一下:
// 代码使用 phpseclib/phpseclib:~2.0 包
use phpseclib\Crypt\DES;
$des = new DES();
$des->mode = DES::MODE_ECB;
$key = 'BBB274FE';
$des->setKey($key);
$des->disablePadding();
$result = trim($des->decrypt(hex2bin('DAC3E889F943083BBF72BCF9684E115A')));
var_dump($result);
// 输出结果 string(10) "1309677659"
另外实现游戏进程启动并自动登录的命令:
"C:\Program Files (x86)\MapleStory\MapleStory.exe" tw.login.maplestory.gamania.com 8484 BeanFun T9fd0000000000000000 1234567890
项 | 说明 |
---|---|
“C:\Program Files (x86)\MapleStory\MapleStory.exe” | 游戏文件路径 |
tw.login.maplestory.gamania.com | 游戏服务器 |
8484 | 游戏服务器端口 |
T9fd0000000000000000 | 游戏账号 ID(非港台橘子账号) |
1234567890 | 通过 DES 解密的 10 位密码 |