PCQQ - 發送自定義的XML卡片消息


效果:

 

原理:

qq分享產生的xml卡片消息存儲在qq內存中,可以在qq運行內存中搜索找到其xml源碼,記錄源碼相應的內存地址,通過內存地址修改掉內存數據,再次轉發這條分享的消息就會發現內容的變化。

實現:

1.打開一個會話窗口,隨意給對方分享一條卡片消息

2.在cheat engine中指定打開這個會話窗口的進程

3.設置cheat engine要搜索的數據類型為字符串,搜索卡片消息中的關鍵詞

4.在cheat engine的搜索結果列表中ctrl+a全選,右鍵修改選中的地址數據,修改任意字符

5.回到剛才的qq會話窗口,轉發我們修改的那條卡片消息,可以看到已經成功地修改了內容

 

要實現完全自定義XML卡片消息就要繼續操作↓

6.回到cheat engine,過濾掉內容改變了的條目。搜索我們修改后的內容,記得點“繼續搜索”,不要點“新的搜索”

還需要繼續過濾,直到確定唯一存儲了卡片消息源碼的那個內存地址。

7.選擇搜索結果中的一半條目,右鍵改變選中的地址數值

8.回到qq會話窗口再次轉發那條消息,測試剛才的修改數值操作是否有影響,是否起到了作用。

若轉發的消息內容無變化,說明剛才所選的那些地址不是存儲xml源碼的地址,刪除那些地址條目;

若內容變化,說明所選的地址其中有一個真正存儲xml源碼的地址,刪除除這些地址以外的地址條目。

9.現在就剩3條了,一條條的修改地址數據,每次修改后就回到會話窗口轉發下卡片消息,直到轉發出去的消息內容與我們修改的內容一樣,即可斷定哪個地址是那條xml消息源碼的存儲地址

10.在最終確定的地址條目上右鍵瀏覽內存區域,可以看到這個內存地址前后的數據(需要在數據瀏覽區右鍵將字符串編碼指定為UTF-8)

11.按鍵盤的上方向鍵瀏覽內存數據,找到xml消息源碼的開頭標志

12.點擊開頭標志的第一個字符串,右鍵將選中的數據內存地址添加到列表,回到cheat engine主界面

13.雙擊條目的type(類型)表頭數據,將剛才添加的地址條目的數據類型指定為字符串

14.雙擊(value)數值表頭數據,可以自定義,輸入任意樣式的xml卡片消息源碼了。

轉發測試效果

C#使用WINAPI修改軟件運行內存的小例子

     [DllImportAttribute("kernel32.dll")]public static extern IntPtr OpenProcess(int dwDesiredAccess,bool bInheritHandle,int dwProcessId);
        [DllImportAttribute("kernel32.dll")]public static extern bool WriteProcessMemory(IntPtr hProcess,IntPtr lpBaseAddress,int[] lpBuffer,int nSize,IntPtr lpNumberOfBytesWritten);
        [DllImport("kernel32.dll")]private static extern void CloseHandle(IntPtr hObject);
        public static void WriteMemoryValue()
        {
            IntPtr hProcess = OpenProcess(0x1F0FFF, false, 8608); 
            WriteProcessMemory(hProcess, (IntPtr)0x17729DBF, new[] {0x3C, 0x3F,}, 4, IntPtr.Zero);
            CloseHandle(hProcess);
        }

最后說幾句:

這里隨便解釋幾個qq內置的xml卡片消息樣式的標識符,更多的可以通過搜索內存查找分析或網上提問。

ActionData:點擊消息的跳轉地址,可以跳轉打開一個網址,可以打開一個qq號的資料卡

<msg serviceID="1" templateID="1" action="plugin" actionData="mqqapi://card/show_pslcard?src_type=internal&amp;source=sharecard&amp;version=1&amp;uin=2221234077" brief="[QQ紅包]新年快樂!" sourceMsgId="0" url="" flag="0" adverSign="0" multiMsgFlag="0">

Source:消息后綴

<source name="官方認證消息" icon="https://qzs.qq.com/ac/qzone_v5/client/auth_icon.png" action="" appid="-1" />

Item:內容板塊,可以在消息內容中插入一張圖片,可以插入標題,具體內容。layout的數值決定了板塊的樣式

<item layout="9">

 

--->2018-06-13補充:

qqxml樣式標志作用解析:

一、基礎框架

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<msg serviceID="1"></msg>

框架中的消息內容里至少有一項內容才能發送出去

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<msg serviceID="1">
<item layout="2"><title>生死8秒!女司機高速急剎,他一個操作救下一車性命</title></item>
</msg>

 

二、消息設置

1.簡要提示:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<msg serviceID="1"
brief="[QQ紅包]發紅包啦!">
<item><title>生死8秒!女司機高速急剎,他一個操作救下一車性命</title></item>
</msg>

2.點擊打開資料卡

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<msg serviceID="1"
action="plugin" actionData="mqqapi://card/show_pslcard?src_type=internal&amp;source=sharecard&amp;version=1&amp;uin=2221234077">
<item><title>生死8秒!女司機高速急剎,他一個操作救下一車性命</title></item>
</msg>

3.點擊打開網頁

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<msg serviceID="1"
action="web" url="http://buluo.qq.com/mobile/detail.html?bid=12372&amp;pid=4694151-1528083221&amp;_bid=128&amp;_wv=1027#from=grp_sub_obj&amp;gid=613689927&amp;_wv=1027">
<item><title>生死8秒!女司機高速急剎,他一個操作救下一車性命</title></item>
</msg>

三、消息內容

1.標題

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<msg serviceID="1">
<item>
<title>生死8秒!女司機高速急剎,他一個操作救下一車性命</title>
</item>
</msg>

2.正文(可通過標志屬性自定義文本顏色、大小、風格)

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<msg serviceID="1">
<item>
<title>test title</title>
<summary>test content</summary>
</item>
</msg>

3.圖片

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<msg serviceID="1">
<item>
<title>test title</title>
<summary>test content</summary>
<picture cover="http://url.cn/5CEwIUy"/>
</item>
</msg>

四、消息后綴

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<msg serviceID="1">
<item><title>生死8秒!女司機高速急剎,他一個操作救下一車性命</title></item>
<source name="官方認證消息" icon="https://qzs.qq.com/ac/qzone_v5/client/auth_icon.png" action="" appid="-1" />
</msg>

 

五、內容板塊樣式

默認樣式:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<msg serviceID="1">
<item>
<title>test title</title>
<summary>test content</summary>
<picture cover="http://url.cn/5CEwIUy"/>
</item>
</msg>

樣式2:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<msg serviceID="1">
<item layout="2">
<title>test title</title>
<summary>test content</summary>
<picture cover="http://url.cn/5CEwIUy"/>
</item>
</msg>

樣式3:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<msg serviceID="1">
<item layout="9">
<title>test title</title>
<summary>test content</summary>
<picture cover="http://url.cn/5CEwIUy"/>
</item>
</msg>

樣式4:

 layout="10"

更多樣式請修改layout的值自行測試。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM