参考 LumaQQ 的方式进行黑盒引用,不一定要获知协议

解决方案 »

  1.   

    QQ 2005贺岁版下面为动态库BasicCtrlDll.dll中反汇编的代码以及代码分析,主要用于分析EWH.DB中数据结构以及QQ数据解调算法的问题。另外,这个算法也可以将User.db中的数据提取出来。
    1000B71D    B8 AC160110    mov eax,BasicCtr.100116AC    
    1000B722    E8 89460000    call BasicCtr.1000FDB0    
    1000B727    83EC 3C    sub esp,3C    
    1000B72A    8B45 08    mov eax,dword ptr ss:[ebp+8]    将数据的开始地址赋给EAX,实际数据为**Data,EAX=*Data
    1000B72D    53    push ebx    
    1000B72E    56    push esi    
    1000B72F    57    push edi    
    1000B730    8B30    mov esi,dword ptr ds:[eax]    需要转换的字符串,EAX指示一个结构,第一个成员为实际的数据指针
    1000B732    894D D8    mov dword ptr ss:[ebp-28],ecx    局部变量[ebp-28]保存全局的标志结构,ECX为全局参数地址,在调用本函数时跟入
    1000B735    8B46 F8    mov eax,dword ptr ds:[esi-8]    为CString结构中长度的成员,表示总共多少个字节
    1000B738    83F8 06    cmp eax,6    如果长度小于6,则为无效的数据
    1000B73B    0F82 81020000    jb BasicCtr.1000B9C2    如果比6小则跳转退出,说明数据量不够解调的
    1000B741    803E 51    cmp byte ptr ds:[esi],51    是否为 QQ Data 的数据,QD为QQ数据标志
    1000B744    0F85 78020000    jnz BasicCtr.1000B9C2    
    1000B74A    807E 01 44    cmp byte ptr ds:[esi+1],44    
    1000B74E    0F85 6E020000    jnz BasicCtr.1000B9C2    
    1000B754    66:8B7E 04    mov di,word ptr ds:[esi+4]    对于EWH来说,为第4+1个字节,为0003
    1000B758    83C6 04    add esi,4    指向数据段(Sections)的个数
    1000B75B    46    inc esi    
    1000B75C    83C0 FA    add eax,-6    EAX去掉6个字节,对于EWH来说,剩下36H个字节
    1000B75F    46    inc esi    
    1000B760    8945 08    mov dword ptr ss:[ebp+8],eax    指向第一个数据段
    1000B763    E8 CE050000    call BasicCtr.1000BD36    在内存(ECX+9C)处开辟一个(100H)字节的空间,空间地址返回到EAX
    1000B768    8365 E0 00    and dword ptr ss:[ebp-20],0     局部变量[ebp-20]清零
    1000B76C    0FB7C7    movzx eax,di    转换到EAX,对于EWH,di=3。表示有3段数据
    1000B76F    85C0    test eax,eax    
    1000B771    8945 B8    mov dword ptr ss:[ebp-48],eax    局部变量[ebp-48]保存数据的段数
    1000B774    0F8E 21020000    jle BasicCtr.1000B99B    
    1000B77A    837D 08 07    cmp dword ptr ss:[ebp+8],7    如果整个长度小于7,则剩下的应该是QQ号了。
    .......
    有意请联系[email protected]