微信PC端技術(shù)研究(3)-如何找到消息發(fā)送接口

微信PC端技術(shù)研究-如何找到消息發(fā)送接口
by anhkgg(公眾號(hào):漢客兒)
2019年2月18日

0x0. 前言

準(zhǔn)備工具:Cheat Engine,OllyDbg谈息,IDA劲绪。

前一篇(微信PC端技術(shù)研究(2)-保存聊天語(yǔ)音)已經(jīng)說(shuō)過(guò)CE是什么,也應(yīng)用CE研究了如何保存微信語(yǔ)音势决,這篇繼續(xù)使用CE和OD來(lái)研究一下微信的消息發(fā)送接口。

思路大概是這樣:在消息框中輸入內(nèi)容之后蓝撇,通過(guò)CE找到內(nèi)容地址果复,然后通過(guò)內(nèi)存斷點(diǎn)來(lái)找到發(fā)送該數(shù)據(jù)的相關(guān)代碼,從而找到消息發(fā)送接口渤昌。

0x2. 分析過(guò)程

查找關(guān)鍵數(shù)據(jù)地址

在輸入框輸入一個(gè)比較特別的文字內(nèi)容(避免搜索時(shí)太多內(nèi)存選項(xiàng))后虽抄,使用CE搜索該內(nèi)容地址走搁。

由于已經(jīng)知道確切的消息內(nèi)容,很容易就能通過(guò)CE的Exact value->String來(lái)找到內(nèi)容地址迈窟,修改內(nèi)容多次篩選私植,最后留下兩個(gè)結(jié)果(詳細(xì)操作見(jiàn)上一篇文章)。

1.png

通過(guò)CE修改一下內(nèi)存的內(nèi)容菠隆,微信輸入框中內(nèi)容同步改變兵琳,說(shuō)明這個(gè)內(nèi)存地址就是輸入框中內(nèi)容地址,最終確認(rèn)地址是2A1E1A8骇径。

接著在點(diǎn)擊發(fā)送按鈕之后躯肌,輸入框內(nèi)容會(huì)被清空,所以第一想法就是對(duì)內(nèi)存地址下內(nèi)存寫(xiě)入斷點(diǎn)破衔,可以找到發(fā)送過(guò)程中清空內(nèi)容的代碼清女。

打開(kāi)OD,掛載到WeChat.exe進(jìn)程晰筛,在右下角數(shù)據(jù)窗口Ctrl+G輸入2A1E1A8嫡丙,然后右鍵選擇斷點(diǎn)->內(nèi)存寫(xiě)入斷點(diǎn)。

2.png

F9讓OD跑起來(lái)读第,然后點(diǎn)擊微信發(fā)送按鈕曙博,沒(méi)想到意外發(fā)生了,輸入框內(nèi)容清空了怜瞒,但是斷點(diǎn)卻沒(méi)有觸發(fā)父泳。

怎么回事?斷點(diǎn)弄錯(cuò)吴汪?地址找錯(cuò)惠窄?暫時(shí)沒(méi)有答案。

用CE多次重復(fù)前面的操作漾橙,地址依然是這個(gè)地址杆融,斷點(diǎn)就是不觸發(fā)。

通過(guò)OD查看到霜运,在輸入框清空后脾歇,2A1E1A8的內(nèi)容確實(shí)沒(méi)有變化,和發(fā)送前一樣觉渴,并且在重新輸入新的內(nèi)容之后介劫,該內(nèi)存內(nèi)容同步更新。

所以結(jié)論就是輸入框內(nèi)容地址確實(shí)是2A1E1A8案淋,但是清空輸入框并不是清空該內(nèi)存內(nèi)容座韵,猜測(cè)編輯框可能通過(guò)控制字符串長(zhǎng)短來(lái)控制顯示的,清空輸入框內(nèi)容就是設(shè)置字符串長(zhǎng)度為0。

找到輸入框類(lèi)

清空輸入框沒(méi)有進(jìn)展了誉碴,那怎么辦呢宦棺?

嘗試去找了其他數(shù)據(jù),比如發(fā)送按鈕的發(fā)送(S)黔帕,發(fā)送按鈕的提示內(nèi)容不能發(fā)送空白內(nèi)容等等代咸,數(shù)據(jù)地址也可以很快找到,但是和我們的分析目標(biāo)偏的太遠(yuǎn)了成黄。

幾番折騰后呐芥,作罷。

轉(zhuǎn)念一想奋岁,清空不行思瘟,發(fā)送總的讀取輸入框中內(nèi)容吧,那換成內(nèi)存訪(fǎng)問(wèn)斷點(diǎn)嘗試一下闻伶。

依然是在右下角數(shù)據(jù)窗口Ctrl+G輸入2A1E1A8滨攻,然后右鍵選擇斷點(diǎn)->內(nèi)存訪(fǎng)問(wèn)斷點(diǎn)。

3.png

完成后回到微信界面蓝翰,沒(méi)想到直接斷下了光绕,我還沒(méi)點(diǎn)發(fā)送按鈕呢。根據(jù)以前的經(jīng)驗(yàn)畜份,下意識(shí)就覺(jué)得是界面刷新顯示文字觸發(fā)了斷點(diǎn)诞帐,這可能會(huì)影響分析,根本沒(méi)辦法通過(guò)發(fā)送按鈕來(lái)觸發(fā)內(nèi)存訪(fǎng)問(wèn)斷點(diǎn)爆雹。

4.png

一般解決方法有:

  1. 條件斷點(diǎn)景埃。也就是屏蔽掉刷新界面觸發(fā)的斷點(diǎn),但是好像內(nèi)存斷點(diǎn)不支持條件斷點(diǎn)啊顶别,要么通過(guò)腳本來(lái)完成,好麻煩拒啰。
  2. 找其他切入點(diǎn)驯绎。廢話(huà),清空那邊的路都斷了谋旦,死心吧剩失。
  3. 其他我不知道的...

放棄了一般的解決方法,我決定看看本次斷點(diǎn)究竟干嘛了册着。

注意到斷點(diǎn)的位置不是微信模塊WeChatWin.dll中拴孤,而是在msftedit.dll,很少見(jiàn)的一個(gè)模塊甲捏。根據(jù)目錄可以看到是微軟系統(tǒng)的一個(gè)模塊演熟,名字中的edit也可以看出這應(yīng)該是一個(gè)編輯框相關(guān)的模塊。

可執(zhí)行模塊, 條目 20
 基址=6F050000
 大小=00094000 (606208.)
 入口=6F05D53D msftedit.<ModuleEntryPoint>
 名稱(chēng)=msftedit (系統(tǒng))
 文件版本=5.41.21.2510
 路徑=C:\Windows\System32\msftedit.dll

好像和我們的分析目標(biāo)很貼近嘛,在OD中數(shù)據(jù)窗口右鍵斷點(diǎn)->刪除內(nèi)存斷點(diǎn)芒粹,然后按下Alt+F9回到用戶(hù)模塊領(lǐng)空兄纺,也就是跳過(guò)系統(tǒng)模塊的代碼,直接回到微信的模塊代碼中化漆,省過(guò)對(duì)系統(tǒng)代碼的分析估脆。

看到返回到6E20CCC2這個(gè)地址,上一行代碼就是調(diào)用msftedit.dll的函數(shù)座云,我們對(duì)其下一個(gè)斷點(diǎn)疙赠,鼠標(biāo)點(diǎn)擊到6E20CCBF這行代碼,按下F2下一個(gè)int 3斷點(diǎn)朦拖,然后F9跳過(guò)本次分析圃阳。

5.png

OD繼續(xù)斷下,此次直接斷在了6E20CCBF這個(gè)位置贞谓,可以看到call調(diào)用了msftedit.6F05AD69限佩,這是個(gè)什么函數(shù)呢?

6.png

既然msftedit.dll是微軟模塊裸弦,那么肯定是有符號(hào)的嘛祟同,嘿嘿。

這里可以直接在OD中加載符號(hào)來(lái)分析理疙,使用方法是:

1.在WingDbg目錄下拷貝dbgeng.dll晕城,dbghelp.dll,srcsrv.dll窖贤,symbolcheck.dll砖顷,symsrv.dll,symsrv.yes赃梧,一共6個(gè)文件至OD目錄下滤蝠。

2.打開(kāi)OD,設(shè)置符號(hào)路徑授嘀。調(diào)試--->選擇符號(hào)路徑物咳。

3.設(shè)置StrongOD的插件選項(xiàng)。選擇加載符號(hào)蹄皱。

原文:https://blog.csdn.net/sr0ad/article/details/8253311 

但是只支持本地符號(hào)览闰,也就是得自己下載了模塊對(duì)應(yīng)符號(hào)到本地,OD設(shè)置符號(hào)文件路徑后巷折,才能正常使用压鉴,有點(diǎn)麻煩。

我這時(shí)候一般就會(huì)使用IDA了锻拘,因?yàn)樗鼤?huì)自己在線(xiàn)下載模塊對(duì)應(yīng)的符號(hào)油吭,很方便。

用IDA打開(kāi)msftedit.dll,等待些許時(shí)間上鞠,IDA下載符號(hào)际邻,解析等等完成后,我們?nèi)フ业?code>msftedit.6F05AD69對(duì)應(yīng)的函數(shù)究竟是個(gè)什么東西芍阎。

但是這里msftedit.6F05AD69的模塊基址是6F050000世曾,而IDA解析使用的是默認(rèn)基址0x6FCD0000,要么修改IDA解析基址為6F050000谴咸,等待IDA重新解析轮听,要么通過(guò)偏移計(jì)算對(duì)應(yīng)地址。

再解析等太久岭佳,直接計(jì)算吧血巍,所以要安利我寫(xiě)的一個(gè)小工具(偏移計(jì)算工具),能夠快速計(jì)算地址珊随,具體使用見(jiàn)相關(guān)文章述寡。

7.png

再I(mǎi)DA中按下g,輸入6fcdad69叶洞,找到msftedit.6F05AD69對(duì)應(yīng)函數(shù)為CTxtEdit::OnTxInPlaceActivate鲫凶。

8.png

很明顯通過(guò)名字OnTxInPlaceActivate可以看出是編輯框中文字激活狀態(tài)(顯示)下就會(huì)觸發(fā)該函數(shù),這不是重點(diǎn)衩辟。

重點(diǎn)看CTxtEdit螟炫,不言而喻,這就是msftedit.dll中實(shí)現(xiàn)的編輯框的類(lèi)艺晴。

如果寫(xiě)過(guò)MFC相關(guān)代碼昼钻,應(yīng)該很快就能想到CTxtEdit肯定還有其他讀內(nèi)容、寫(xiě)內(nèi)容的函數(shù)封寞,叫做GetXXX或者SetXXX然评。

在IDA的函數(shù)列表中翻看一下,果然很快就找到了CTxtEdit::GetTextExCTxtEdit::SetText狈究。

9.png

但到底這兩個(gè)函數(shù)是不是編輯框讀寫(xiě)內(nèi)容的函數(shù)呢沾瓦,我們對(duì)這兩個(gè)函數(shù)下斷點(diǎn)試試,通過(guò)工具算到在ID調(diào)試中這兩個(gè)函數(shù)的相應(yīng)地址為6f0684376f056d37谦炒。

10.png

在OD的底部命令窗口輸入bp 6f068437bp 6f056d37,刪掉之前CTxtEdit::OnTxInPlaceActivate的斷點(diǎn)风喇,然后F9跑起來(lái)宁改。

11.png

回到微信界面,這次能夠正常顯示了魂莫,點(diǎn)擊發(fā)送按鈕还蹲。OD觸發(fā)斷點(diǎn),斷在了6f068437也就是CTxtEdit::GetTextEx上,很明顯這是發(fā)送函數(shù)在讀取輸入框內(nèi)容谜喊。

12.png

回溯找到發(fā)送函數(shù)

此時(shí)的調(diào)用堆棧是這樣的:

調(diào)用堆棧 
地址       堆棧       函數(shù)過(guò)程 / 參數(shù)                       調(diào)用來(lái)自                      結(jié)構(gòu)
0026E280   6F06842D   msftedit.6F068437                     msftedit.6F068428             0026E3FC //CTxtEdit::GetTextEx
0026E400   6E20D239   包含msftedit.6F06842D                   WeChatWi.6E20D233             0026E3FC
0026E43C   6DBD38EB   包含WeChatWi.6E20D239                   WeChatWi.6DBD38E8             0026E438 //TxtEdit_GetText
0026E5AC   6DC15B65   ? WeChatWi.6DBD3860                   WeChatWi.6DC15B60             0026E5A8 //sendBtn_GetText
0026E60C   6DC15DEE   WeChatWi.6DC15B10                     WeChatWi.6DC15DE9             0026E608 //sendbtn_click
0026E618   6E20BFB8   WeChatWi.6E20BEF4                     WeChatWi.6E20BFB3             0026E614
0026E62C   6E20362E   WeChatWi.6E20BF90                     WeChatWi.6E203629             0026E628
0026E6CC   6E203589   WeChatWi.6E2035A7                     WeChatWi.6E203584             0026E6C8
0026E820   6DC53695   ? WeChatWi.6E20352E                   WeChatWi.6DC53690             0026E81C
13.png

在OD中回溯調(diào)用堆棧跟蹤返回到WeChatWi.6E20D239潭兽,看到右側(cè)堆棧窗口已經(jīng)獲取到輸入框中內(nèi)容,證明前面的分析沒(méi)有問(wèn)題斗遏。

14.png

再次回溯兩層到WeChatWi.6DC15B60山卦,可以看到堆棧中的參數(shù)依然是獲取到的輸入框內(nèi)容。

[0026E5E4] = 0828C070
[0828C070 + 4] = 0828CAF0 => a12bcAAAAA
15.png

此時(shí)函數(shù)首地址是WeChatWi.6DC15B10诵次,進(jìn)入到IDA中對(duì)應(yīng)函數(shù)100d5b10(你要問(wèn)我為什么此時(shí)進(jìn)入IDA查看账蓉?我只好說(shuō)其實(shí)這個(gè)步驟花費(fèi)了很多時(shí)間,一邊OD調(diào)試逾一,一邊IDA輔助確認(rèn)等等铸本,過(guò)程并沒(méi)有這么順利,篇幅原因省略)遵堵,然后按下x回到上層函數(shù)箱玷,看到如下代碼:

16.png

看到click很明顯可以看出這就是發(fā)送按鈕的響應(yīng)函數(shù)了(相關(guān)知識(shí)可以了解duilib編程,微信界面是duilib實(shí)現(xiàn)的)陌宿。

到目前找到了發(fā)送消息的函數(shù)锡足,但還并不是消息發(fā)送接口,這還只是界面的操作函數(shù)限番,具體發(fā)送消息接口應(yīng)該在該函數(shù)內(nèi)部被調(diào)用舱污。

有技巧找到發(fā)送接口

先粗略地在OD中跟一遍WeChatWi.6DC15B10的代碼邏輯,函數(shù)很多弥虐,沒(méi)法很快確認(rèn)哪個(gè)函數(shù)是消息發(fā)送接口扩灯。

截取部分代碼感受一下,大概11個(gè)函數(shù)霜瘪。根據(jù)OD跟的邏輯大概是sendBtn_GetText_10093860->sub_100DD340->sub_100C50C0->sub_10094100->sub_100DD9D0->sub_100C4450->sub_10323DF0->sub_100DE120珠插。

if ( sendBtn_GetText_10093860(a1->unk_560, (int)&savedregs, a2, a3, msg) <= 0 )// 這里是獲取msg
  {                                             // x
    //省略一大段邏輯
  }
  if ( msg[0] != msg[1] )
  {                                             // x
    //省略一大段邏輯
  }
  if ( sub_100DD340() )
  {                                             // x
    //省略一大段邏輯
    sub_1047C070(&v34, v23);
    sub_100DB8C0((int)a1_, v34, v35, (int)v36, v37, (int)v38, v39, v40, (int)v41, msg_);
  }
  if ( sub_100C50C0((_DWORD *)(a1_->unk_558 + 2528), (int)msg, (int)v43) )
  {
    sub_10094100((_DWORD *)a1_->unk_560);//
    sub_100DD9D0(msg);                          
    sub_100C4450((_DWORD *)(a1_->unk_558 + 2528), (_msg *)msg);// 
    v31 = sub_10323DF0();
    sub_100DE120(v31, (int)a1_, (int)sub_100D6C40, 0, v40, (int)v41, msg_);// retn 18
    v12 = 1;
  }
  else
  {
    //省略一大段邏輯
    sub_10108D60(v30, *(&a1_->unk_558 + 1), v33, (int)v34, v35, v36, (int)v37, v38, v39, v40, v41);
  }

通常通過(guò)調(diào)試每個(gè)函數(shù)的參數(shù)、返回結(jié)果等基本可以猜測(cè)到函數(shù)功能颖对,然后來(lái)找到消息發(fā)送接口捻撑。

但這里我偷懶了,因?yàn)閰?shù)結(jié)構(gòu)復(fù)雜缤底,一時(shí)半會(huì)沒(méi)法找到關(guān)鍵點(diǎn)顾患,有點(diǎn)暈了。

所以我通過(guò)排除法來(lái)一一篩選函數(shù)个唧,最多11次左右就能找到消息發(fā)送接口江解。舉個(gè)例子,如果sub_100DD340是消息發(fā)送接口徙歼,在我手工屏蔽其功能之后犁河,消息肯定發(fā)不出去了鳖枕,那么我就可以通過(guò)看到的結(jié)果(是否發(fā)送成功)來(lái)確認(rèn)sub_100DD340是不是要找到的消息發(fā)送接口。

具體屏蔽方法:

  1. 通過(guò)IDA或OD進(jìn)入sub_100DD340函數(shù)內(nèi)部桨螺,找到函數(shù)結(jié)尾宾符,找到retn xx類(lèi)似代碼
  2. 用OD在sub_100DD340函數(shù)開(kāi)始修改匯編代碼為retn xx逢艘,雙擊輸入retn xx即可

這樣sub_100DD340函數(shù)直接在入口就返回了故源,功能沒(méi)有了,也保證了函數(shù)調(diào)用時(shí)的棧平衡愧怜。

17.png

在確認(rèn)sub_100DD340并沒(méi)有影響消息發(fā)送之后缠局,通過(guò)右鍵撤銷(xiāo)選擇處修改恢復(fù)修改的內(nèi)容则奥。

如此重復(fù)篩選其他的函數(shù),最終確認(rèn)sub_100C4450為發(fā)送消息函數(shù)狭园。代碼接口如下:

sub_100C4450((_DWORD *)(a1_->unk_558 + 2528), (_msg *)msg);// 

msg是發(fā)送內(nèi)容读处,a1_->unk_558 + 2528)是當(dāng)前聊天窗口的好友信息,包括wxid和名字之類(lèi)的信息唱矛。

18.png

但作為接口依然不夠簡(jiǎn)潔罚舱,需要構(gòu)造好友信息,比較復(fù)雜绎谦,所以繼續(xù)深入sub_100C4450內(nèi)部管闷,看看是否能夠找到最簡(jiǎn)單的接口,比如:

sendmsg(wxid, msg); //傳入發(fā)給誰(shuí)窃肠,發(fā)什么即可

sub_100C4450內(nèi)部依然很復(fù)雜包个,使用和前面同樣的方式,先大致跟一遍執(zhí)行流程冤留,然后通過(guò)排除法逐個(gè)篩選碧囊。

if ( !sub_100C43D0(msg_.buf, msg_.len, msg_.maxlen, wxid_) )// 是不是全是特殊字符\r\n\t等,是返回1纤怒,不是返回0
{
sub_1007D390();
msg_packet = sub_102DA4A0((int)wxid, (int)&v67, msg__, &unk, 1);// 數(shù)據(jù)打包糯而,發(fā)送
sub_100494E0(msg_packet_, (size_t)msg_packet);//
sub_1004B550(&v67);              //
v11 = sub_102478D0();
v12 = sub_10402C10((int)v11);
v89 = (void **)v13;
if ( sub_10402C10((int)msg_packet_) != v12 || v14 != v89 )
{
    if ( sub_100C6770(this_) )        // 
    {
    sub_1004BBF0((int *)&msgpacket);//
    sub_10056940((int *)&msgpacket, (size_t)msg_packet_);// 
    sub_100C56D0(this___, (size_t)&msgpacket, 1);
    sub_10081210((LPVOID *)&msgpacket);
    v16 = sub_100C0EC0();
    sub_10247250((int **)v16, (int)path);
    }
}
}
if ( (signed int)(msg->msgend - (unsigned int)msg->msg) / 0x24 != 1 )
v9 = sub_10323DF0();
sub_10324E70(v9, msg_.len, msg_.maxlen, (int)wxid_, (int)path);
sub_100ADA10(&msg___);

這一次篩選屏蔽的方法換一種,直接在某個(gè)函數(shù)執(zhí)行完成之后泊窘,通過(guò)jmp跳到sub_100C4450結(jié)尾熄驼,如果某次消息發(fā)送成功,最后執(zhí)行的函數(shù)就是我們要的接口烘豹。

19.png

很幸運(yùn)瓜贾,這次在第三個(gè)函數(shù)就找到了消息發(fā)送函數(shù)sub_102DA4A0,看看它的參數(shù):

sub_102DA4A0((int)wxid, (int)&v67, msg__, &unk, 1);
sub_102DA4A0@<eax>(int wxid@<edx>, int a2@<ecx>, wxstring *msg, _DWORD *a4, int a5)

下圖是調(diào)試中看到的數(shù)據(jù)携悯,確認(rèn)接口沒(méi)有問(wèn)題阐虚。至于其他兩個(gè)參數(shù),經(jīng)過(guò)分析是用于接收輸出的蚌卤,沒(méi)有實(shí)際作用实束,在此不贅述。

20.png

如此分析消息發(fā)送接口的工作完成逊彭,找到了和預(yù)期基本一致的接口函數(shù)咸灿。

0x3. 總結(jié)

篇幅好像有點(diǎn)長(zhǎng)了,最后做一下此次分析的總結(jié):

  1. ce找到編輯框中的內(nèi)容內(nèi)存
  2. 發(fā)送后侮叮,編輯框內(nèi)容刪除避矢,寫(xiě)斷點(diǎn)無(wú)效,神奇囊榜,猜測(cè)通過(guò)設(shè)置長(zhǎng)度控制顯示
  3. 改為內(nèi)存訪(fǎng)問(wèn)斷點(diǎn)审胸,進(jìn)入界面就會(huì)斷下,徘徊幾次后卸勺,決定分析砂沛,沒(méi)想到找到了關(guān)鍵點(diǎn)CTxtEdit::OnTxInPlaceActivate
  4. 知道編輯框使用了msftedit.dll的CTxtEdit的類(lèi),用ida找到符號(hào)
  5. 查詢(xún)類(lèi)似getvalue的接口曙求,找到SetText碍庵、GetTextEx等,對(duì)這兩個(gè)函數(shù)下斷點(diǎn)
  6. 果然斷下悟狱,回溯找到了發(fā)送的消息響應(yīng)函數(shù)
  7. 詳細(xì)分析響應(yīng)函數(shù)静浴,多次通過(guò)retn、jmp排除挤渐,找到真正發(fā)送消息函數(shù)苹享,最后分析出接口函數(shù)

此次分析中CE找到地址是第一步非常關(guān)鍵的點(diǎn),直接就進(jìn)入了函數(shù)調(diào)用堆棧內(nèi)部浴麻,對(duì)此次分析作用非常明顯得问。

再就是在發(fā)送消息響應(yīng)函數(shù)內(nèi)部,逐個(gè)分析找到消息發(fā)送接口函數(shù)中白胀,通過(guò)修改指令來(lái)屏蔽函數(shù)功能來(lái)確認(rèn)函數(shù)功能椭赋,比每個(gè)函數(shù)去分析參數(shù)猜測(cè)確認(rèn)功能來(lái)的更快,效果更明顯或杠。

調(diào)試工具非常重要哪怔,動(dòng)(OD)靜態(tài)(IDA)分析結(jié)合能夠提高分析速度。

OD適合分析函數(shù)參數(shù)向抢、解析數(shù)據(jù)結(jié)構(gòu)认境、確認(rèn)函數(shù)功能,IDA適合分析函數(shù)邏輯挟鸠、整體函數(shù)結(jié)構(gòu)叉信、代碼框架等等,各有優(yōu)勢(shì)艘希。

最后硼身,再次安利一下開(kāi)源項(xiàng)目https://github.com/anhkgg/SuperWeChatPC硅急,此次分析的發(fā)送消息接口也會(huì)在后續(xù)合入到項(xiàng)目中,歡迎starPR佳遂。

相關(guān)文章:

  1. 微信PC端技術(shù)研究(2)-保存聊天語(yǔ)音

  2. 偏移計(jì)算工具

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末营袜,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子丑罪,更是在濱河造成了極大的恐慌荚板,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吩屹,死亡現(xiàn)場(chǎng)離奇詭異跪另,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)煤搜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)免绿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人宅楞,你說(shuō)我怎么就攤上這事针姿。” “怎么了厌衙?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵距淫,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我婶希,道長(zhǎng)榕暇,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任喻杈,我火速辦了婚禮彤枢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘筒饰。我一直安慰自己缴啡,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布瓷们。 她就那樣靜靜地躺著业栅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪谬晕。 梳的紋絲不亂的頭發(fā)上碘裕,一...
    開(kāi)封第一講書(shū)人閱讀 51,679評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音攒钳,去河邊找鬼帮孔。 笑死,一個(gè)胖子當(dāng)著我的面吹牛不撑,可吹牛的內(nèi)容都是我干的文兢。 我是一名探鬼主播晤斩,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼姆坚!你這毒婦竟也來(lái)了尸昧?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤旷偿,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后爆侣,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體萍程,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年兔仰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了茫负。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡乎赴,死狀恐怖忍法,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情榕吼,我是刑警寧澤饿序,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站羹蚣,受9級(jí)特大地震影響原探,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜顽素,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一咽弦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧胁出,春花似錦型型、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至裸诽,卻和暖如春嫂用,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背丈冬。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工嘱函, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人埂蕊。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓往弓,卻偏偏與公主長(zhǎng)得像疏唾,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子函似,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 微信PC端技術(shù)研究-保存聊天語(yǔ)音by anhkgg(公眾號(hào):漢客兒)2019年1月31日 2.6.6.28 0x0...
    anhkgg閱讀 702評(píng)論 0 0
  • Windows 常用消息大全 表A-1 Windows消息分布 消息范圍說(shuō) 明 0 ~ WM_USER – 1系統(tǒng)...
    北風(fēng)知我意閱讀 2,049評(píng)論 0 0
  • 9102年了槐脏,我想大部分人使用微信的頻率應(yīng)該都會(huì)高于QQ了吧。 以前在QQ傳文件的時(shí)候撇寞,哪里會(huì)想到會(huì)有文件大小限制...
    anhkgg閱讀 8,241評(píng)論 0 0
  • 哎顿天,真的不好說(shuō),強(qiáng)烈的感覺(jué)是真的中了蔑担,這種感覺(jué)牌废,不知道為什么,身邊的人肯定會(huì)很開(kāi)心啤握,但于我而言鸟缕,真的不是那么的強(qiáng)烈...
    馬橙澄閱讀 147評(píng)論 0 0
  • 我的寶貝又長(zhǎng)大一歲了,她已經(jīng)亭亭玉立排抬,她已經(jīng)年近芳華懂从。都說(shuō)″豆蔻梢頭二月花″,在我心里蹲蒲,她已燦然如夏番甩。依記初始,那...
    安之若素_a23b閱讀 132評(píng)論 0 0