研究问道四年 到现在泛滥的局面 云端陪伴了大家这么多年 我还是很欣慰
有人说我好也有人说我坏 我也不想多说什么
接下来一段时间我会把问道逆向的整个过程做一个大致的分析 主要是针对数据包协议的解析
首先我先讲讲怎么crack登陆器
一个launcher想要使得client连接到server 最主要需要的就是ip和port
这里讲讲改launcher内存来指向自己的服务器的方法
问道autoupdate.exe流程大致是启动-http得到所有大区详细信息-根据选择大区组合相关信息进行aes-ofb-128加密得到目标命令行-用目标命令行运行asktao.mod
这个过程中间有很多方法可以让asktao.mod指向我们的地址
可以参考我之前写的这篇博文 http://www.stanwind.com/?post=27
就不过多赘述了
这里贴上一段1.57 autoupdate.exe的一段目标命令行算法
我是直接改了这个内存地址 是静态的 没有偏移
还有其他的你们可以自行去看看
区组
EAX=004E9424
EBX=00000011
ECX=004C88CE
EDX=004E9425
ESI=004E9424
EDI=00000000
ESP=0018F740
EBP=0018F764
EIP=755C705C
cl 区组名
755C705A - 8A 08 - mov cl,[eax]
77BF9033 - 06 - push es
77BF9036 - 8A 46 01 - mov al,[esi+01]
77BF903C - 8A 46 02 - mov al,[esi+02]
77BF90F0 - 8B 44 8E FC - mov eax,[esi+ecx*4-04]
77BF9124 - 8A 06 - mov al,[esi]
755AE89E - 80 38 20 - cmp byte ptr [eax],20
755AE8A9 - 38 18 - cmp [eax],bl
755AE8B7 - 80 38 20 - cmp byte ptr [eax],20
77C2061F - 8A 06 - mov al,[esi]
66CB1E3A - 80 38 00 - cmp byte ptr [eax],00
66CB26CE - 8A 03 - mov al,[ebx]
66CB5170 - 8B 44 8E F8 - mov eax,[esi+ecx*4-08]
66CB5178 - 8B 44 8E FC - mov eax,[esi+ecx*4-04]
66D42981 - C6 04 01 00 - mov byte ptr [ecx+eax],00
IP
EAX=004E9398
EBX=00000011
ECX=004C8831
EDX=004E9399
ESI=004E9398
EDI=00000000
ESP=0018F740
EBP=0018F764
EIP=755C705C
755C705A - 8A 08 - mov cl,[eax]
77BF9033 - 06 - push es
77BF9036 - 8A 46 01 - mov al,[esi+01]
77BF903C - 8A 46 02 - mov al,[esi+02]
77BF90F0 - 8B 44 8E FC - mov eax,[esi+ecx*4-04]
77BF9130 - 8A 06 - mov al,[esi]
77BF9134 - 8A 46 01 - mov al,[esi+01]
66C21E3A - 80 38 00 - cmp byte ptr [eax],00
66C226CE - 8A 03 - mov al,[ebx]
66C25168 - 8B 44 8E F4 - mov eax,[esi+ecx*4-0C]
66C25170 - 8B 44 8E F8 - mov eax,[esi+ecx*4-08]
66C25178 - 8B 44 8E FC - mov eax,[esi+ecx*4-04]
66C251AC - 8A 06 - mov al,[esi]
66CB2981 - C6 04 01 00 - mov byte ptr [ecx+eax],00