分析PC微信二維碼圖片

本人也只是興趣愛好,初學(xué)者,一個(gè)菜鳥而已,主要分享下自己的學(xué)習(xí)思路和方法,也方便日后復(fù)習(xí)
這里非常感謝看雪鬼手的教程

進(jìn)入正題
這是我當(dāng)前使用的PC微信版本


image.png

我們先分析怎么獲取二維碼圖片
我按照鬼手的教程 用CE通過未知初始值過濾,然后通過來回切換刷新二維碼 感覺一直搜不出來 過濾到最后 剩余結(jié)果還是很多
所以我們這里換一種方法


image.png

我們從他的二維碼圖片格式入手,這里先說一下,微信二維碼圖片是png格式的,這個(gè)在鬼手教程里也有說到這點(diǎn),
所以我們通過png文件格式來作為突破口,也就是分析png格式的特征
我們百度一下,做個(gè)簡(jiǎn)單的了解,我簡(jiǎn)單截取了一篇文章的部分
使用UltraEdit32打開該文件,如下:

00000000~00000007:

image

可以看到,選中的頭8個(gè)字節(jié)即為PNG文件的標(biāo)識(shí)。這是固定的

接下來的地方就是IHDR數(shù)據(jù)塊了:

00000008~00000020:

image

  • 00 00 00 0D 說明IHDR頭塊長(zhǎng)為13
  • 49 48 44 52 IHDR標(biāo)識(shí) 固定的
  • 00 00 00 08 圖像的寬,8像素
  • 00 00 00 08 圖像的高,8像素
  • 04 色深,2^4=16,即這是一個(gè)16色的圖像(也有可能顏色數(shù)不超過16,當(dāng)然,如果顏色數(shù)不超過8,用03表示更合適)
  • 03 顏色類型,索引圖像
  • 00 PNG Spec規(guī)定此處總為0(非0值為將來使用更好的壓縮方法預(yù)留),表示使壓縮方法(LZ77派生算法)
  • 00 同上
  • 00 非隔行掃描
  • 36 21 A3 B8 CRC校驗(yàn)

我們就提取一些固定的特征 來作為突破口
比如說
他的前8個(gè)字節(jié):89 50 4E 47 0D 0A 1A 0A
IHDR標(biāo)識(shí): 49 48 44 52 都可以
我們這里就通過字符串IHDR標(biāo)識(shí)來做一個(gè)搜索 或者直接搜字節(jié)也可以 大家怎么舒服怎么來
CE搜索IHDR


image.png

有5個(gè)正確的結(jié)果 其他的好像又變了 我們可以忽略掉 大家搜的時(shí)候 可以把快速掃描去掉 不然有時(shí)候可能會(huì)出現(xiàn)搜不到的情況
我們先看第一個(gè)結(jié)果059D94FC
我們搜一下誰保存的這張圖片的地址 我們搜的時(shí)候要把059D94FC-C 這里要-C,我們看上面結(jié)構(gòu),因?yàn)镮HDR是第13個(gè)字節(jié) 我們要回到首地址 -C完就是 059D94F0 因?yàn)槠渌胤饺绻4娴脑? 存放的肯定是首地址, 如果大家對(duì)內(nèi)存有些許了解 應(yīng)該很好懂


image.png

好像搜不到東西,我們就暫時(shí)先pass掉這個(gè) 來看第二個(gè)
第二個(gè) 05BA8714 同理 我們-c 得到5BA8708


image.png

我們把這個(gè)結(jié)果放到下面 保存起來

第三個(gè) 10a49984 -c 得到10A49978


image.png

保存起來
第四個(gè) 10a4b70c -c得到 10a4b700


image.png

好像沒結(jié)果 不管 pass
image.png

只剩兩個(gè)結(jié)果了
我們就來驗(yàn)證一下 哪個(gè)是 我們用手機(jī)掃描下二維碼 實(shí)現(xiàn)二維碼的切換 他的地址就會(huì)變

image.png

我們不登錄 再點(diǎn)擊返回二維碼界面 這樣就實(shí)現(xiàn)了二維碼的切換


image.png

再回來


image.png

發(fā)現(xiàn)第二個(gè)變了 第一個(gè)沒變 可能是其他的什么圖片 我們不管
反正第二個(gè)就是二維碼圖片 就對(duì)了
我們可以再次驗(yàn)證 把他從內(nèi)存中 dump下來

image.png

我們來看看這個(gè)二維碼的內(nèi)存存放
image.png

我們?cè)趤砹私庖幌翽ng格式的結(jié)尾標(biāo)記 IEND數(shù)據(jù)塊
00 00 00 00 49 45 4E 44 AE 42 60 82 這可以理解為結(jié)束標(biāo)記 也就是說 我們拷到這里即可 多復(fù)制點(diǎn)也無所謂 解析的時(shí)候 會(huì)自動(dòng)忽略在這之后的內(nèi)容
然后我們復(fù)制16進(jìn)制數(shù)據(jù) 我們把它還原成字節(jié)集 也就是 字節(jié)數(shù)組 轉(zhuǎn)換圖片
image.png

然后我們掃碼 發(fā)現(xiàn)掃了之后 微信客戶端 出現(xiàn)了確認(rèn)登陸 表示我們成功啦

現(xiàn)在如果我們要用代碼 讀內(nèi)存 來讀取二維碼圖片 我們?cè)趺粗浪拇笮∧? 有些同學(xué)可能會(huì)想到剛剛提到的結(jié)尾標(biāo)識(shí)
但是我們?cè)倩氐奖4孢@個(gè)二維碼地址的那個(gè) 地址 058C6268 這個(gè)地址存著二維碼圖片的地址
其實(shí)這里應(yīng)該是個(gè)結(jié)構(gòu)


image.png

也就是說058C6268 +4 偏移4存放圖片大小
因此 058C626C 存放圖片大小

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 上節(jié)課 我們?cè)敿?xì)解析的二維碼圖片的找法,這節(jié)課我們繼續(xù)來實(shí)現(xiàn)遠(yuǎn)程hook二維碼圖片地址, 語言的話用易語言大法我...
    DF_Sky閱讀 2,607評(píng)論 0 0
  • 上回咱說到愛姐在大堂上自殺了,大老爺也慌了手腳,馬上派衙役通知她家人。 大娘家是普通百姓,又沒見過什么世面,也就草...
    二斗八閱讀 626評(píng)論 3 5
  • 的地方女兒
    lwb76閱讀 215評(píng)論 0 0
  • 喜歡讀書,就等于把生活中寂寞的辰光換成巨大享受的時(shí)刻。——孟德斯鳩 余蔭 家門前有...
    吻我以痛閱讀 389評(píng)論 3 5
  • Navicat Premium支持oralce,sql server,mysql,postgresql,sqlit...
    金_鵬閱讀 2,207評(píng)論 0 1

友情鏈接更多精彩內(nèi)容