阿里旺旺聊天發包CALL發送消息

之所以需要這個CALL是因爲之前在淘寶賣一個軟件時需要自動發消息功能,自己有時可能不在電腦旁,客人付款後就要把軟件激活碼及時發送出去。模擬按鍵又不太準確,所以找到了這個CALL。這段CALL代碼是2013年找到的,現在應該也能用,放出來供有需要的人用。

具體怎麼找到這個CALL的,自己也記不清了,阿里旺旺用的是UNICODE編碼,這個CALL有兩個參數wchar_t*類型的名稱和wchar_t*類型的內容。

我在軟件中把這個CALL包裝成了一個成員函數,來看一下吧:

void Widget::sendMsg(QString nameX,QString textX)
{
    QString addr = ui->lineEdit_3->text();
    if(addr.isEmpty())
    {
        QMessageBox::warning(this,"提醒","ESI的值爲空,請先向任意人發送一條信息");
    }
    QString sName = "cntaobao"+nameX;
    QString sText = textX;
    wchar_t sNameW[200]={0};
    wchar_t sTextW[2000]={0};
    memset(sNameW,0x0,sizeof(wchar_t) * 200);
    memset(sTextW,0x0,sizeof(wchar_t) * 2000);
    sName.toWCharArray(sNameW);
    sText.toWCharArray(sTextW);

    wchar_t* name = sNameW;
    wchar_t* text =sTextW;
    DWORD ecxAddr = addr.toULong();
    __asm
    {
        PUSHAD
        push 0x0
        push 0x0
        push 0x1
        mov eax,text
        push eax
        push 0x0
        mov edx,name
        push edx
        mov ecx,ecxAddr
        mov eax,dword ptr ds:[ecx+0x1DC]
        push eax
        mov edi,dword ptr ds:[eax]
        mov edx,dword ptr ds:[edi+0x28]
        call edx
        POPAD
    }
}

void Widget::sendMsg(QString nameX,QString textX)

這就是兩個參數,旺旺姓名和需要發送的內容,ESI寄存器應該是一個基址,可以用OD看一下。

程序裏可以自動找到這個ESI需要的基址,用HOOK實現的。

特徵碼是:

QString pattern ="558BEC6AFF68\\w{8}64A1000000005083EC18535657A1\\w{8}33C5508D45F464A3000000008BF9897DE08B45108B4D08C700000000008B01508D4DE8E8";
利用正則反彙編16進制查找的。
最後放出源代碼和工程,需要用VC的編譯器編譯,工程會生成一個WangWangHwnd.dll,利用源碼中的DllLoader.exe程序這個Dll注入到阿里旺旺中即可,源碼中也有數據庫

的操作,那是爲了之前爲了記錄買家數據和獲取激活碼用的,無視即可。

源碼下載地址:

http://download.csdn.net/detail/hats8888/9649238




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章