網頁抓包之我的歌單

最近看到不少人部落格都發了關於網頁抓包的教學,然後也激起了我的興(zhuang)趣(bi),就誕生了這篇文章 也剛好前段時間,我的歌單對接酷狗的API失效了,趁機修復一下,順便寫個圖文教學。那麼就拿酷狗「開刀」 關於抓包的概念 抓包(packet capture)就是將網路傳輸發送與接收的資料包進行截獲、重發、編輯、轉存等操作,也用來檢查網路安全。抓包也經常被用來進行資料截取等。 ——來自基佬百科 我們這裡講的是對網頁傳輸的資料進行截取,並不涉及重發、編輯等影響網路安全的操作。 其實關於抓包的文章,我早在16年的時候就已經發布了多篇,但是由於文章年久失修,圖片有的丟失,有的損壞,順序也全亂了。 抓包對於做WEB開發的人來說,可能會比較陌生,尤其是後端,但我是做桌面應用程式出身的,使用起來就得心應手。 目的: 解析酷狗歌曲直鏈 - 修復我的歌單 目標網站: http://t.kugou.com/1md5hf5t8V2 酷狗我的歌單分享短網址 使用工具: Google Chrome F12(或 Ctrl + Shift + I、或直接 點擊右鍵>檢查元素)開發人員工具 (注意以下教學請結合圖片觀看,看不清楚的請右鍵新視窗開啟圖片) 然後我這裡抓的是手機版頁面,因為電腦版整個歌單的列表是直接返回到原始碼中,不方便我們解析。手機版則是返回JSON。 Preserve Log:作用是在頁面跳轉後保留之前的日誌 左上角的手機標誌:切換當前瀏覽介面的UA為手機UA 輸入網址後按Enter鍵訪問,網頁發生跳轉 狀態碼302,得到重定向位址(務必看圖片,文字描述被精簡) 抓包就到此結束,下面開始分析: 可以確定的是酷狗網站的音樂連結絕對不是固定的 以以往的經驗來說,這都是可疑參數 在抓包日誌中尋尋覓覓,得到整個歌單列表的獲取方法 list。並且包含歌曲的基礎資訊。 分析 list 連結,就很明顯,這裡的參數和之前的很像 接下來就是分析每一首歌曲的連結 歌曲直鏈的有效期差不多為24小時左右,就會失效了 繼續查看抓包日誌 帶上歌曲的hash值即可獲取到歌曲的相關資訊和直鏈(hash值在前邊的歌曲列表中已經返回了) 總結: 短網址 -> 網頁連結參數 -> 獲取歌單列表 -> 獲取歌曲 (循序漸進,把上一步得到的參數帶上訪問下一個網址) 相關的程式碼自己去寫吧….-。- 很久沒發這種很教學性的文章了。 最後說一句,Google 開發人員工具真特喵好用! 隨便寫寫,溜~~ 相關推薦 (1)使用PHP抓取Bing每日圖像並為己所用.孟坤部落格. (2)抓包入門(一) 相關程式碼 (1)酷狗歌單獲取歌曲資訊的介面原始碼

2018年6月5日 · 1 min · MoeJue

CSS3 隨機背景圖片切換特效

CSS3 隨機背景圖片淡入淡出切換特效 演示效果如本篇文章背景所示 看大家扒我的幻想領域二次元限定版扒得比較累,扒了大半個小時的,抽空整理一下發出來 設計之初本來是打算使用 jQuery 進行實現的,但是注意到了 CSS3 的 @keyframes 規則,CSS3 已經強大到曾經只有 JS 才能實現的效果 定義和用法 透過 @keyframes 規則,您能夠建立動畫。 建立動畫的原理是,將一套 CSS 樣式逐漸變化為另一套樣式。 在動畫過程中,您能夠多次改變這套 CSS 樣式。 以百分比來規定改變發生的時間,或者透過關鍵詞 “from” 和 “to”,等價於 0% 和 100%。 0% 是動畫的開始時間,100% 是動畫的結束時間。 為了獲得最佳的瀏覽器支援,您應該始終定義 0% 和 100% 選擇器。 註釋:請使用動畫屬性來控制動畫的外觀,同時將動畫與選擇器綁定。 核心 CSS 部分 (記得切換圖片地址) body { background: #000; background-attachment: fixed; word-wrap: break-word; -webkit-background-size: cover; -moz-background-size: cover; background-size: cover; background-repeat: no-repeat } ul { list-style: none } .cb-slideshow li:nth-child(1) span { background-image: url(https://random.52ecy.cn/randbg.php?v=1520341099) } .cb-slideshow li:nth-child(2) span { background-image: url(https://random.52ecy.cn/randbg.php?v=1520341159) } .cb-slideshow li:nth-child(3) span { background-image: url(https://random.52ecy.cn/randbg.php?v=1520341149) } .cb-slideshow li:nth-child(4) span { background-image: url(https://random.52ecy.cn/randbg.php?v=1520341139) } .cb-slideshow li:nth-child(5) span { background-image: url(https://random.52ecy.cn/randbg.php?v=1520341129) } .cb-slideshow li:nth-child(6) span { background-image: url(https://random.52ecy.cn/randbg.php?v=1520341119) } .cb-slideshow,.cb-slideshow:after { position: fixed; width: 100%; height: 100%; top: 0; left: 0; z-index: -2 } .cb-slideshow:after { content: '' } .cb-slideshow li span { width: 100%; height: 100%; position: absolute; top: 0; left: 0; color: transparent; background-size: cover; background-position: 50% 50%; background-repeat: none; opacity: 0; z-index: -2; -webkit-backface-visibility: hidden; -webkit-animation: imageAnimation 36s linear infinite 0s; -moz-animation: imageAnimation 36s linear infinite 0s; -o-animation: imageAnimation 36s linear infinite 0s; -ms-animation: imageAnimation 36s linear infinite 0s; animation: imageAnimation 36s linear infinite 0s } .cb-slideshow li:nth-child(2) span { -webkit-animation-delay: 6s; -moz-animation-delay: 6s; -o-animation-delay: 6s; -ms-animation-delay: 6s; animation-delay: 6s } .cb-slideshow li:nth-child(3) span { -webkit-animation-delay: 12s; -moz-animation-delay: 12s; -o-animation-delay: 12s; -ms-animation-delay: 12s; animation-delay: 12s } .cb-slideshow li:nth-child(4) span { -webkit-animation-delay: 18s; -moz-animation-delay: 18s; -o-animation-delay: 18s; -ms-animation-delay: 18s; animation-delay: 18s } .cb-slideshow li:nth-child(5) span { -webkit-animation-delay: 24s; -moz-animation-delay: 24s; -o-animation-delay: 24s; -ms-animation-delay: 24s; animation-delay: 24s } .cb-slideshow li:nth-child(6) span { -webkit-animation-delay: 30s; -moz-animation-delay: 30s; -o-animation-delay: 30s; -ms-animation-delay: 30s; animation-delay: 30s } @-webkit-keyframes imageAnimation { 0% { opacity: 0; -webkit-animation-timing-function: ease-in } 8% { opacity: 1; -webkit-transform: scale(1.05); -webkit-animation-timing-function: ease-out } 17% { opacity: 1; -webkit-transform: scale(1.1) rotate(0) } 25% { opacity: 0; -webkit-transform: scale(1.1) rotate(0) } 100% { opacity: 0 } } 當然還是需要配合 HTML 程式碼的 HTML 部分 (其中的文字部分和 <li> 的數量是可以隨意更改的) ...

2018年5月16日 · 2 min · MoeJue

Git簡單的使用步驟

本文不闡述任何概念性知識,僅僅只是做一個筆記,簡單的使用步驟,如遇障礙,請Google一下 使用SSH 完成 Git 與 GitHub 的綁定 生成 SSH key ssh-keygen -t rsa 指定 RSA 演算法生成金鑰,之後就會生成兩個檔案,分別為id_rsa和id_rsa.pub,即私鑰id_rsa和公鑰id_rsa.pub。對於這兩個檔案 添加 SSH key github.com -> Settings -> SSH and GPG -> New SSH key 將公鑰id_rsa.pub的內容貼到Key處的位置(Titles的內容不填寫也沒關係),然後點擊Add SSH key 即可。 驗證綁定是否成功 ssh -T git@github.com 把本地專案推送到github的命令 (1) 打開你的目錄 cd demo (2) 初始化版本庫,用於生成git檔案 git init (3) 將所有檔案添加到暫存區 git add * (4) 提交目前工作空間的修改內容 git commit -m "first commit" (5) 將儲存庫連接到遠端伺服器 git remote add origin <server>(就是上面你儲存庫的地址) (6) 將改動推送到所添加的伺服器上 git push -u origin master 在推送的時候如果出現如下錯誤: warning: redirecting to https://github.com/178146582/dabai.git/ To http://github.com/178146582/dabai.git ! [rejected] master -> master (fetch first) error: failed to push some refs to 'http://github.com/178146582/dabai.git' hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused by another repository pushing hint: to the same ref. You may want to first integrate the remote changes hint: (e.g., 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details. 查了一下錯誤的原因是github中的README.md檔案不在本地程式碼目錄中。所以我們把上面第六步分成兩步: ...

2018年4月3日 · 1 min · MoeJue

各種語言的OEP大全

平時要找 OEP 對照確實比較麻煩,我就整理了一下,直接在本文中查看並認識 OEP, 或者右鍵點擊圖片儲存到本機 點擊可查看大圖 如果對您有幫助的話,請留言評論一下吧~ VC6 與易語言 Delphi7 VB5 VB6 BC++ **VS2008Debug ** **VS2008Release ** **VS2012-VS2015Debug ** **VS2012-VS2015Release **

2017年5月19日 · 1 min · MoeJue

各種語言按鈕事件特徵碼

調試軟體,最重要的就是下斷點,那麼如何下斷點,就是一門重要的技巧 比如:彈提示框,就下MessageBoxA,註冊表的,就下RegOpenKeyA等等 當然,能直接下到按鈕事件,當然更為方便,因為到了按鈕事件後,很快就會到達核心程式碼,離你的破解也就不遠了 本文就總結一下各類語言找按鈕事件的方法,當然也可以借助工具,如VBexplorer,DEDE,ECE等等 一、VB程式 其實,VB的按鈕事件的找法是最為普遍的,也就是大家所謂的萬能斷點,其實也不僅僅是針對按鈕事件,還有很多其他的用處,如取消NAG,啟動框,灰色按鈕或隱藏按鈕,啟動時的timer事件等等,具體的就自己去總結吧,這裡只講按鈕事件! OD載入後,CTRL+B 查找 816C24 二、Delphi和BC++程式 Delphi和BC++都是同一公司開發的,故查找方法都一樣,當然你也可以使用DEDE. OD載入後,CTRL+G,轉到00401000處 然後就CTRL+B,查找特徵碼740E8BD38B83????????FF93???????? 下面的工作就是不斷的CTRL+L繼續查找和F2下斷了 三、易語言 易語言的這種查找方法,同樣適合有殼的程式,其他的就必須脫殼後再繼續操作了 OD載入後,就F9運行程式吧,當程式運行後, 然後CTRL+B,查找FF 55 FC 5F 5E 四、VC++程式(非MFC程式) OD載入後,單擊滑鼠右鍵,選擇"查找",然後是"所有命令” 在彈出的輸入框裡,寫入特徵程式碼 sub eax,0a 然後斷下後,F7跟進,F8幾次,就來到按鈕事件了 五、MFC類程式 當然判斷MFC和非MFC的程式,靠大家自己去判斷了 運行程式然後就CTRL+F,查找特徵程式碼:sub eax,0a 斷下後F7跟進,F8幾次,就會來到按鈕事件程式碼處了! 總結類:各種語言按鈕事件特徵碼 VB: 816C24 Delphi & BC++ : 740E8BD38B83????????FF93???????? MFC: sub eax,0a VC++: sub eax,0a 易語言: FF 55 FC 5F 5E或(e-debug) 萬能斷點: F3A58BC883E103F3A4E8 按鈕事件如何使用 請去看我的零基礎學破解系列教程 本文部分摘自網路

2017年5月15日 · 1 min · MoeJue

零基礎學破解系列教程大綱第一季

目的:本套教學目的是為了防破解,雖說這是一套講破解方面知識的教學,但是我們只有知道了破解者是如何破解我們的軟體,我們才能更好、更有效地防止我們的軟體被破解 基礎入門篇 1、中文搜尋與Nop [第一節下載地址](http://bbs.125.la/forum.php?mod=viewthread&tid=14017567): 如何對程式進行編譯保存 2、je與jmp使用 z標誌位 [第二節下載地址](http://bbs.125.la/forum.php?mod=viewthread&tid=14018591):實戰了一款不知道什麼的網路驗證的爆破 3、本地重啟驗證 [第三節下載地址](http://bbs.125.la/forum.php?mod=viewthread&tid=14019645):透過兩次的編譯保存進行爆破 按鈕事件篇 1、易語言按鈕事件,萬能斷點 按鈕事件篇下載地址:依靠易語言體區分真正的易語言程式 提高篇 1、網路驗證 [提高篇第一節下載地址](http://bbs.125.la/thread-14022484-1-1.html):單步偵錯過程中注意暫存器和堆疊視窗的變化,注意可疑跳轉 2、帶殼程式的偵錯(401000處),打補丁(記憶體) [提高篇第二節下載地址](http://bbs.125.la/thread-14023855-1-1.html):(白寶雲網路驗證快速破解技巧) 脫殼篇 1、ESP定律 脫殼篇下載地址:注意一定要在xp系統下脫殼 2、單步追蹤法,修復IAT [第二節的下載地址](http://bbs.125.la/thread-14025607-1-1.html):(兩節是一起錄製發佈的),打包了教學中用到的所有工具、奉上了最後一課的小禮物 **在這忙忙碌碌的五月底,迎來了零基礎學破解系列教學第一季的完結。感謝一路以來一直支持我的小夥伴們!** **如果有機會出第二季,我會提前在我部落格更新大綱說明,還請繼續關注啦!** 補充: 線上觀看地址:易語言TV網

2017年5月8日 · 1 min · MoeJue

實現 Emlog 最新評論列表不顯示部落格主的評論回覆

部落格主需要經常與訪客互動,部落格主的回复也會作為一條評論顯示在最新評論處,這樣一來,如果部落格主一次回复好幾條評論留言,那麼在最新評論的地方顯示的都是自己的評論,這樣不太好。 以我目前的 emlog5.3.1 版本為例: 打開 include/lib 目錄下的 cache.php 文件(這是一個快取函數文件),在其中找到以下程式碼: 我的是在第179行,如下 $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "comment WHERE hide='n' ORDER BY date DESC LIMIT 0, $index_comnum"); 將其修改為: $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "comment WHERE hide='n' AND poster!='阿珏' ORDER BY date DESC LIMIT 0, $index_comnum"); 提示:這是一段執行 SQL 語句的 PHP 程式碼,條件是檢測評論用戶的用戶名是不是部落格主的用戶名,是則不顯示該評論到最新評論列表。(也可以透過檢測電子郵件網址的 poster!='阿珏',畢竟我自己回复是不帶電子郵件的,所以只能檢測用戶名了,當然 不要冒充我) 最後保存文件後,登入 emlog 的後台更新一下快取,刷新網頁就可以看見效果了。

2017年5月6日 · 1 min · MoeJue

程式設計師日常中病毒系列

DropFileName = “svchost.exe” 問題解決方案 事情是這樣的,一朋友發來源碼讓我看下,手殘不小心點到裡頭的一個exe文件,彈出聯網請求,我便迅速關掉,之後發現同目錄多了一個偽裝成系統音樂文件夾的exe可執行文件。我就感覺到事情不妙了,但是又不能確定,隨後刪除這整個文件夾時提示有程式正在使用。 我就放那暫時沒有管他了,之後的兩三個小時,越發覺電腦響應的速度越慢了,物理內存飆高。就將電腦重啟了。 之後就想寫寫程式碼,打開一個html的文件,發現大事情了,電腦所有的html都出問題了(如下圖所示)。現在可以確定確實是感染病毒了。 然後馬上馬不停蹄的再次下載了個360,對電腦進行了全盤查殺(不要問我為什麼下載360),長期裸奔的電腦,難免會來個一兩次的。 單個測試,發現360只會把病毒程式碼刪掉,不會把這個文件刪掉,但是最下方被註釋掉的部分程式碼就不會刪掉了,到最後我還得要手動再處理一遍,雖然不處理也沒什麼太大問題,但是強迫症,苦逼( ╯▽╰) 程式碼原理(作用): 這串script程式碼是一串vbs語言的病毒,中了該病毒後你會發現你的本地所有html文檔打開後都會有這樣一串字符,不僅僅是html文檔,連dll文檔也會被感染。當然這種病毒不要太驚慌,因為他只是起到破壞文件的作用,不會有上傳隱私,盜號等危害。 這串程式碼大概意思就是找到svchost.exe這個進程然後注入數據運行,注入的就是後面的進制程式碼來運行。這種病毒和其他病毒不同的是這種vbs病毒感染能力非常強,html文件一旦被感染,那麼用戶只要打開html文檔病毒就運行上面該程式碼導致病毒直接感染到本地電腦全部html文件和dll文件。 的確,DLL文件也會被感染,導致部分軟體可以正常使用,不過殺毒軟體會報毒。而且你會發現你運行很多常用軟體都會報毒,比如以前常用的迅雷丶酷狗等等一些常用的軟體你再打開的時候居然提示都有病毒,當時我就覺得特別奇怪,迅雷是在官網下載的怎麼可能會報毒呢?所以這裡的原因就是vbs病毒感染了迅雷等軟體的安裝文件中的dll,所以殺毒軟體會不停的報毒,報毒名稱也是vbs腳本病毒。 提示:文中圖片已被外星人劫走

2017年5月4日 · 1 min · MoeJue

暴露網站後台地址是一件非常危險的事

暴露一個網站的後台地址是一件非常危險的事情,比如我網站的後台地址:管理登入 網路是一個複雜的世界,每個站長還是要學會保護自己。 emlog 的預設後台路徑是 admin 目錄,非常赤裸裸地暴露了重要的資訊。 修改預設後台路徑共分三步: 打開 admin 目錄,找到 globals.php,用 editplus 或者其它編輯器打開,如果你想用記事本打開也行 ^_^ 後果自負 把資料夾 admin 改成你想要的名字,例如 xxxx 之類的。 打開 admin/globals.php 這個檔案,現在可能是 xxxx/globals.php 了 修改第 9 行程式碼: define(‘TEMPLATE_PATH’, EMLOG_ROOT.’/admin/views/’); 把其中的 admin 改成你新改的名稱 xxxx: define(‘TEMPLATE_PATH’, EMLOG_ROOT.’/xxxx/views/’); 第三步、刷新後台登入後在導航設定裡將「登入」隱藏,否則點擊會出現 404 錯誤多煩人啊~ 解決一些後遺症: 改變後台路徑後,微語的表情圖片無法顯示,解決方法: 打開 include/lib/function.base.php,找到 $t = str_replace($data,’’,$t); 替換 admin 為 xxxx: $t = str_replace($data,’’,$t); 若後台的個人設定裡沒有上傳新頭像,則微語頭像也無法在前台顯示,解決辦法: 打開 t/index.php,找到 $avatar = empty($user_cache[UID][‘avatar’]) ? ‘../admin/views/images/avatar.jpg’ : ‘../’ . $user_cache[UID][‘avatar’]; 替換 admin 為 xxxx: $avatar = empty($user_cache[UID][‘avatar’]) ? ‘../xxxx/views/images/avatar.jpg’ : ‘../’ . $user_cache[UID][‘avatar’]; ...

2017年4月30日 · 1 min · MoeJue

58同城的登錄(RSA演算法)

58同城的登入(RSA演算法) 這一次。又是一個精彩的登入演算法解析 目標位址: https://passport.58.com/login?(58 同城) 用到的工具: js 除錯工具(我這裡用的是改自某論壇的 js 除錯工具,相對智慧化了) 抓包工具(我這次就直接使用瀏覽器的 F12 了,搜尋關鍵字更方便) 提示:由於這篇文章發表於 1 年前,年久失修,圖片內容已遺失!

2016年11月23日 · 1 min · MoeJue