能力值:
( LV2,RANK:10 )
|
-
-
2 楼
用wireshark抓校验的数据包,然后在内存里搜索校验内容,如果每次处理校验内容的内存不变的话就对这段内存下访问断点。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
校验的内容是每次都在变的
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
刚试了下,校验包的内存是变的
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
断settimer定时器。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
验证部分是在DLL里的,我看了没settimer,可能敏感函数都做了相应处理,不过还是感谢楼上的回答
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
请好心的兄弟再给点思路
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
那就断socket函数吧。
|
能力值:
( LV5,RANK:60 )
|
-
-
9 楼
找退出函数,下断点,PostMessage,SendMessage,ExitProcess
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
ExitProcess这个断无效,也不知道怎么搞的,不知道是不是退出函数也处理了,现在真是恰似一江春水向东流
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
还有高手有独特思路的吗,请给与指点,谢谢了,唉,等两天了也没解决
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
我也觉得抓包分析协议,然后找到处理改协议的地方下断,这个思路比较正确.如果是对退出进程下断,下到了可能也不是你要的那个地方.人家可能采用异常处理的方式来改变运行过程.
对于协议处理,可以先试图猜测出协议id是啥,然后再去找对这个数字的处理.一般就是一个立即数
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
我对算法不是很懂,抓了包看了下,每次都是先发送软件的帐号(这个每次都不变),服务器返回一串字符串,封包数据里只有3个字节是每次返回的都不一样,软件会用得到的这个变化的数据进行计算发送到服务器上,服务器再返回一个验证封包
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
退出后看一下堆栈
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
堆栈里啥也没有,应该是TMD加壳,把相应的调用的API都VM了
|
|
|