QQ2011多开的实现

先运行一个客户端A,然后再打开一个客户端B,发现直接激活前一个实例。
我们开着客户端A,OD加载再一个客户端
F8单步走,发现跟到QQ2011多开的实现_第1张图片
这个CALL的时候激活客户端A了,在这个CALL下断,CTRL+F2重新载入一下,F9运行断下来,执行到这个CALL我们F7跟进去
然后F8再单步走,发现执行到
QQ2011多开的实现_第2张图片
这个CALL时又会激活客户端A,同样下断重新载入跟进去,在这里面我们F8继续单步跟,在这里单步走的时候大家肯定能感觉出不同来。。。(我是这么感觉的,OD有时会小卡,寄存器窗口有时会有很大变化)跟到
QQ2011多开的实现_第3张图片
这个call时又激活客户端A了,这时我们继续下断重新载入F7跟进这个CALL的话发现会进入startup.dll这个模块,这时我们不继续在里面跟了,我们关掉客户端A重新载入,在第二个断点CALL时跟进去单步走再来一遍,发现那个进入startup.dll这个call(也就是我们第三个断点处)时F8竟然是跟进去了。。。不知道怎么回事竟然不能跟过,不过继续F8还会返回(也可以直接ctrl+F9直接执行到返回),我们继续F8发现跟到
QQ2011多开的实现_第4张图片
004010EB这个CALL时弹出登陆窗口了,OK,这下有点明白了吧
004010D4是我们上面第三个断点,也就是进入startup.dll的那个CALL,应该是在这个CALL里判断程序是否已经运行,然后判断返回值eax是否为空,如果为空的话就跳走,我们多开要走004010EB那个call,能让他跳走么?!所以直接将jnz nop掉,保存修改,试一下是不是可以多开了?

QQ2011多开的实现_第5张图片

你可能感兴趣的:(qq)