[系統安全] 二.如何學好逆向分析及呂布傳游戲逆向案例

      網友投稿 1224 2025-04-01

      文章目錄


      一.如何學好軟件逆向技能

      1.軟件逆向前沿

      2.逆向技能學習路線

      二.安全系列書籍及工具推薦

      三.呂布傳游戲逆向分析

      四.總結

      系統安全:https://github.com/eastmountyxz/SystemSecurity-ReverseAnalysis

      網絡安全:https://github.com/eastmountyxz/NetworkSecuritySelf-study

      聲明:本人堅決反對利用教學方法進行犯罪的行為,一切犯罪行為必將受到嚴懲,綠色網絡需要我們共同維護,更推薦大家了解它們背后的原理,更好地進行防護。(參考文獻見后)

      一.如何學好軟件逆向技能

      1.軟件逆向前沿

      怎么學好軟件逆向技能呢?

      錢老師說“軟件逆向屬于搬磚活”。哈哈!的確,任何技術、任何學科方向,都是在你剛開始參與實際工作時,會覺得很好玩,當你做多了之后,就會覺得它是搬磚活。你剛開始接觸它,會覺得是技巧,如果你每天都靠這個吃飯,就不再是技巧了。

      在逆向分析中,很多人都會去網上學習脫殼之類的教程,會教你在哪個地方下斷點,按幾下F7、F8、F9后,就到了指定位置然后右鍵脫殼,這一系列操作是大師多年的經驗積累。你可能學會了這個最簡答的方案,卻不理解具體的原理。第一個提出方案的人他需要走過這個殼各種各樣的坑,才會形成這個所謂的技巧,它就是為了節約時間和人力成本,無數次重復工作且不影響質量的解決方案。

      這種最優解決方案提供給新人看的時候,他會覺得充滿了技巧性或不理解,但大家在學習逆向分析的時候,還是少琢磨技巧,干就對了。市面上會有各種各樣的工具,比如脫殼,你需要先去學會寫殼,寫好殼,才會覺得殼有多么的脆弱,我的程序里到處都有BUG,如果別人觸發了程序的某個點,我的殼可能就會被摧毀。同時,還有人會研究反調試,甚至匯編出反調試技巧十幾則,你為什么發現不了呢?為什么不能自己總結一個呢?只要你自己寫一個調試器,就會出現很多方案。當你寫完一個調試器之后,你會發現調試器也很脆弱,一不小心某個樣本就會把你的調試器給弄奔潰,那么一旦你找到樣本規律,對于你的調試器而言就是一種反調試。所以,如果你只是學習網上別人的脫殼、反調試技巧,這是沒用的,你需要去深入實踐和理解,然后總結屬于自己的技巧。

      對于對抗行業而言,它是沒有一點僥幸而言,你能把對手按在地上摩擦,你就算贏了。同樣,很多時候我們只看到安全分析人員光鮮的一面,只看到最后幾秒鐘那個補丁、攻擊的厲害,卻不知道分析人員已經被這個殼、調試折磨得不行,反復躺坑最終才能解決。所以,對抗考驗的是人的任性和基本功。

      任性:信念支撐

      基本功:寫代碼、讀代碼

      基本功很重要,網上現在三天學會脫殼、兩天學會反調試之類的教程很多,我們需要卻是基本功。比如,我們在掃雷逆向分析時,關于OllyDbg的教程也非常多,它們詳細講解每個功能干什么,這些功能其實都可以簡略學習,我們需要做的是把下圖所示的反匯編窗口的代碼搞明白就OK了。?這些自動化工具可能不是很熟悉,只是工作效率慢點;但換個角度,如果OD工具中的每個功能及快捷鍵你都會用,但是反匯編窗口的代碼看不懂,那你不就廢了嗎?所以,大家的注意力應該放到反匯編窗口。

      同樣,對于IDA靜態分析也是一個道理,它也有很多的功能,但我們的重點其實還是代碼窗口。因為搞安全的人會遇到很多資料,歸納學習總結是必備的技能(通過訓練是可以培養出來的),它能幫助你快速的找到重點。所以,技巧不是決定性因素,逆向分析人員真正拼的是基本功。

      那么,如何學好編程語言或逆向分析呢?

      不要這樣學習:

      只看書,不上機

      只運行,不調試

      只做課后練習,不做工程項目

      應該這樣學習:

      多敲代碼,重要實戰

      程序不是寫出來的,是調出來的

      根據自己的興趣或者市場的需要多做一些有一定規模的項目

      逆向分析底層推薦的三門課程:

      數據結構

      操作系統

      編譯原理:逆向的理論知識課程,想要逆向反匯編,還原成高級代碼,就需要對編譯器有一定了解,否則只能去看別人公布的技巧。

      比如《操作系統》課程,你能不能做一個小型的操作系統出來呢?《編譯原理》你能不能找到開源的編譯器看看詞法分析、語法分析的源代碼,寫點注釋呢?2000年之前錢老師是玩黑客工具的,但后來發現學不到本質,學的都是技巧,而技巧是有時效性的,所以想學好還得研究其本質,并且逆向分析底層的知識很少更新,而上層技術更新較快。

      2.逆向技能學習路線

      在??梢宰瞿男╉椖繙蕚淠??

      關注網絡社區,參與技術討論,推薦看雪論壇

      搜索安全公司招聘信息,了解技能要求(逆向技能表)

      針對性開發實際項目

      科銳逆向公司在看雪分享的逆向資料推薦大家去學習下。

      逆向并公開Ollydbg的原理

      逆向并公開xp版CreateProcess的原理及流程分析

      逆向并公開Win7 x64版CreateProcess的原理及流程分析

      逆向并公開xp版ReadProcessMemory原理及流程分析

      逆向工程技能樹

      下面給出軟件逆向工程的技能表,包括提前知識、基礎技能、開發技能、逆向技能、學習書單和實踐項目。

      (1) 基礎技能

      包括匯編語言、C語言、C++語言、數據結構,至少得學一個低級語言和高級語言,然后會一個面向對象語言,重點是數據結構。

      (2) 開發技能

      逆向分析需要懂開發,開發至少需要了解一個操作系統平臺的編程,可以選擇Windows或Linux,如Windows SDK編程;然后至少了解一種框架(Java框架、微軟MFC等)。同時,需要懂網絡編程(Socket、TCP、HTTP等),有空可以了解下設計模式,學習設計模式前需要有項目經驗,因為閱讀大型項目代碼時會遇到。然后,數據庫是必須要學習的技能,非常重要。

      在數據庫學習中,大家應該好好學習下數據關系理論(范式、集合等),而大家可能更關注后面的SQL語句。為什么呢?因為語句是可能變化的(如Neo4j和MySQL不同),而關系理論一直在那里。同時,我們的操作系統也可以理解為一個專用型數據庫,它的職責是管理和分配硬件資源的。比如,我們的系統有50個以上進程在跑,一個32位進程的理論地址空間假設是2G,這就需要100G的內存,那怎么解決這個問題呢?通過數據關系可以解決。微軟的操作系統都用到了數據關系,都會建表和主外鍵,從而避免空間的無故或重復占用。

      (3) 逆向技能

      逆向技能比較偏實戰,Windows逆向包括OllyDbg、PE文件格式、IDA使用、Windows內核驅動開發(核心操作系統),Android逆向包括BakSmail、DEX文件格式、Linux內核、NIX操作等。

      (4) 學習書單

      主要推薦編程語言開發、數學基礎、數學結構與算法、操作系統、編譯原理、軟件分析、、工具及參考手冊等書籍。數學基礎也非常重要,但我們逆向以應用為主,數學簡單了解就好。

      編寫一個小游戲,如俄羅斯方塊、五子棋、貪吃蛇、坦克

      (2012年大二完成《墜夢》等多款游戲)

      編寫一個遠控軟件,支持PC、Android

      (2014年大四畢設已完成)

      編寫一個CAD,支持圖形編輯、圖像變換、存儲

      (2013年大三圖形學課完成、2015年完成Android端)

      編寫一個調試器

      編寫一個小型操作系統

      (2013年大三小學期C++實現U盤操作系統)

      編寫一個任務管理器,可以對進程、線程等程序活動進行監控

      (2014年大四畢設已完成)

      編寫一個網絡聊天室,支持多人聊天

      (2015年研一Python實現)

      編寫一個PE分析工具

      做一個針對Windows掃雷的作弊程序

      (2020年博一完成)

      分析一個RPG游戲存檔并寫程序修改存檔

      (2013年大三完成《仙劍1》存檔器)

      通過注入方法,為Windows計算機添加一個菜單程序選項

      通過注入內聯鉤子,實現對指定程序API監控

      詳細逆向分析一個典型的病毒和機理

      (2020完成年WannaCry蠕蟲分析)

      不用編譯器,只借助十六進制編譯器,可以手寫一個編譯器

      從內存中durmp出某應用程序并修復導入表等消息

      嘗試PJ看雪論壇Crakeme模塊的各Crakeme習題

      (2019年正在進行中)

      結合安全機理找到安全漏洞并提交CVE漏洞報告

      二.安全系列書籍及工具推薦

      作為安全初學者,我結合自己和小伙伴們的經驗,簡單給大家推薦下網絡安全、系統安全和人工智能三個方向的書籍,以及相關技術工具,希望大家喜歡!

      [系統安全] 二.如何學好逆向分析及呂布傳游戲逆向案例

      首先推薦如下書籍,這些都是我讀過或正在學習的,都還不錯。

      網絡安全

      《白帽子講web安全》《Web前端黑客技術揭秘》《XSS跨站腳本攻擊剖析與防御》

      《Web攻防業務安全實戰指南》《內網安全攻防滲透測試實戰指南》《安全之路Web滲透技術及實戰案例解析》《黑客攻防技術寶典瀏覽器實戰篇》《網絡攻防實戰研究漏洞利用與提權》《CTF訓練營》等。

      系統安全

      《加密與解密》《惡意代碼分析實戰》《Windows黑客編程技術詳解》

      《逆向工程權威指南》《軟件安全》《windows高級編程》《Windows PE 權威指南》《IDA pro 權威指南》《Android軟件安全與逆向分析》《C++反匯編與逆向分析技術揭秘》《0day安全:軟件漏洞分析技術》等。

      人工智能

      推薦

      《機器學習》《深度學習》《統計學習方法》《Malware Data Science》

      等。

      常見安全網站及論壇:

      看雪

      (https://bbs.pediy.com/)

      看雪論壇是個軟件安全技術交流場所,為安全技術愛好者提供一個技術交流平臺和資源。

      freebuf

      (https://www.freebuf.com/)

      國內關注度最高的全球互聯網安全媒體平臺,愛好者們交流與分享安全技術的社區。

      吾愛PJ

      (https://www.52pojie.cn/)

      吾愛PJ論壇是致力于軟件安全與病毒分析的非營利性技術論壇。

      i春秋

      (https://www.ichunqiu.com/)

      由國內網絡安全機構永信至誠打造的信息安全在線教育平臺,非常多的在線網絡安全資源。

      安全客

      (https://www.anquanke.com)

      提供權威信息發布的漏洞信息,發布安全資訊,分享安全知識和精彩的安全活動直播。

      先知社區

      (https://xz.aliyun.com/)

      一個開放型技術平臺,包括非常優秀的安全技術文章。

      Bilibili網站

      (https://www.bilibili.com/)

      B站真的提供了非常多的各類學習資源,去B站學習安全課程真是不錯的選擇。

      微信公眾號

      微信公眾號也提供了非常便捷的安全學習環境,包括很多安全資源,推薦安全+、Gcow、謝公子、看雪、滲透云等公眾號。

      安全牛

      (https://www.aqniu.com/)

      安全內參

      (https://www.secrss.com/)

      綠盟

      (http://www.nsfocus.com.cn/)

      阿里聚安全

      (https://xlab.tencent.com/cn/)

      Fiddler(網絡漏洞掃描器)

      Burpsuite(網絡漏洞掃描器)

      NMap(端口掃描器)

      Nessus(漏洞掃描程序)

      Wireshark(手動分析包工具)

      SQLMAP(滲透測試工具)

      Metasploit(漏洞監測工具)

      Cobalt Strike(滲透測試框架)

      Hydra(密碼破J工具)

      Acunetix(網絡漏洞掃描軟件)

      pangolin(SQL注入測試工具)

      Ettercap(中間人攻擊工具)

      Maltego(取證工具)

      OWASP Zed(攻擊代理工具)

      Caidao(網站滲透工具)

      中國蟻劍(網站滲透工具)

      冰蝎Behinder(網站滲透工具)

      系統安全分析常用工具推薦如下:

      OllyDbg(動態分析工具 倚天劍)

      IDA Pro(靜態分析工具 屠龍刀)

      Windbg(微軟內核級調試工具)

      PEiD(查殼工具)

      Cuckoo sandbox(開源沙箱系統)

      PEView(PE文件查看工具)

      010Editor(二進制分析)

      Process Monitor(Windows監視工具)

      Process Explorer(文件進程查看器)

      Cheat Engine(內存修改編輯工具)

      Outpost Firewall(共享軟件)

      hex editor(十六進制編輯工具)

      Ubertooth(藍牙嗅探工具)

      匯編語言編譯器

      下面分享2019年看雪安全峰會關于攻擊檢測和對抗的常見技術。

      三.呂布傳游戲逆向分析

      下面以老游戲《新呂布傳》為例,這是非常老的一款游戲。

      我們在玩這個游戲的時候會遇到一個問題,就是NPC說話太慢,在不斷地過劇情,我們想逆向分析讓它迅速完成對話,加快我們游戲的進程。

      第一步,通過OllyDbg軟件打開呂布傳游戲“Ekd5.exe”。

      第二,右鍵點擊“查找”,選擇“當前模塊中的名稱”查看該游戲打開了哪些函數。

      返回界面如下圖所示,包括該游戲需要調用的各種函數,并且猜測各種函數的應用場合。

      UnhookWindowsHookEx:卸載鉤子消息函數

      SetWindowsHookExA:安裝鉤子消息函數

      第四步,選中該函數右鍵點擊“在每個參考上設置斷點”。

      可以看到已經設置了兩個斷點。

      第五步,運行程序或雙擊斷點可以進入反匯編窗口具體位置,可以看到它是一個鍵盤鉤子,并且回調函數為0x0040D307。

      Hookproc Ekd5.0040D307

      HookType WH_KEYBOARD

      CALL SetWindowsHookExA

      第六步,雙擊回調函數那行,復制地址40D307,輸入Ctrl+G跟隨到指定位置。

      第七步,再跳轉的地址0x0040D307位置按下F2,增加新的斷點。

      第八步,按下F9運行程序,并進入對話界面。

      第九步,按下某個按鍵,我們來詳細分析這段匯編代碼。

      CMP EAX, 20

      第十步,給該位置0x0040D32A下個斷點,繼續運行和分析代碼。

      當輸入空格相等后,它會比較一個全局變量的值是否為0,然后進入新的CALL。

      CMP ptr [500E0C], 0

      CALL Ekd5.00406A33

      運行代碼進入CALL函數,然后去到0x00406A33位置,如下圖所示,發現它開啟了一個線程。我們接著需要定位到線程的處理函數。

      CreateThread

      PUSH Ekd4.00406A7F

      第十一步,按下Ctrl+G跟隨到0x00406A7F位置,接著分析匯編代碼。

      給該位置下個斷點,然后分析該函數內容。發現它首先比較狀態,如果狀態為0就設置個WM_LBUTTONDOWN消息,即點擊鼠標。

      Message = WM_LBUTTONDOWN

      Message = WM_LBUTTONUP

      然后間隔一個Sleep函數,時間為100毫秒,接著又設置一個UP消息,相當于左鍵按下后又彈起來了。

      寫到這里,我們發現空格的效果就是反復按下鼠標左鍵又彈起右鍵,原來該游戲已經自帶了過場景的功能,就是按下“空格”,哈哈!但是該游戲的說明書并沒有講述這個按鍵的情況,相當于一個隱藏功能,這里大家也可以進一步修改制作游戲輔助器。這里主要是帶領大家來學習下游戲逆向的過程,尤其是OD工具的基礎用法。

      總之,如果你喜歡逆向分析,會非常有意思,包括玩游戲也會從另一個角度思考;但如果你不喜歡逆向,千萬別進這個行業,每天逆向代碼看到想吐,可以換個喜歡的行業,因為逆向分析工作就是每天泡在代碼堆里。

      四.總結

      寫到這里,這篇文章就介紹完畢,希望對您有所幫助,最后進行簡單的總結下。

      一.如何學好軟件逆向技能

      1.軟件逆向前沿

      2.逆向技能學習路線

      二.安全系列書籍及攻擊推薦

      三.呂布傳游戲逆向分析

      《珈國情》

      明月千里兩相思,

      清風縷縷寄離愁。

      燕歸珞珈花已謝,

      情滿景逸映深秋。

      (By:娜璋AI之家 Eastmount 2021-06-21 星期天 寫于高鐵)

      參考文獻:

      真心推薦大家好好看看這些視頻和文章,感恩這些大佬!

      科銳逆向的錢林松老師受華中科技大學邀請- “逆向分析計算引導”

      c++學習筆記——VS2015中添加graphics.h頭文件 - 行歌er

      https://www.bilibili.com/video/BV1J5411x7qz

      [網絡安全自學篇] 五.IDA Pro反匯編工具初識及逆向工程解密實戰

      [網絡安全自學篇] 六.OllyDbg動態分析工具基礎用法及Crakeme逆向

      5G游戲 通用安全

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:WPS office怎么進行自動修復?WPS office進行自動修復教程
      下一篇:wps表格怎樣轉換成excel(wps表格怎樣轉換成文本)
      相關文章
      亚洲中文字幕无码久久综合网| 亚洲高清专区日韩精品| 久久青青草原亚洲av无码app | 亚洲性无码AV中文字幕| 亚洲欧洲日韩国产一区二区三区| 亚洲欧洲国产成人精品| 久久亚洲AV成人无码| 亚洲熟妇av一区| 亚洲一区二区三区不卡在线播放| 亚洲一级毛片免费看| 国产成人精品日本亚洲专一区| 国产成人精品日本亚洲18图| 亚洲熟妇AV一区二区三区宅男| 亚洲天然素人无码专区| 亚洲AV无码国产一区二区三区| 最新亚洲人成网站在线观看| 亚洲成A人片77777国产| 亚洲日本中文字幕天堂网| 国产亚洲精品影视在线产品| 亚洲人精品午夜射精日韩| 亚洲高清在线观看| 亚洲精品动漫在线| 国产成人精品日本亚洲专 | 国产精品亚洲一区二区三区在线| 久久91亚洲人成电影网站| 亚洲AV午夜成人影院老师机影院| 亚洲好看的理论片电影| 亚洲成AV人片久久| 亚洲欧美成人综合久久久| 深夜国产福利99亚洲视频| 久久影院亚洲一区| 久久精品国产亚洲av麻豆| 亚洲高清视频免费| 亚洲娇小性xxxx| 美国毛片亚洲社区在线观看| 亚洲午夜精品第一区二区8050| 亚洲人成色7777在线观看| 亚洲自偷自偷精品| 色老板亚洲视频免在线观| 亚洲AV无码国产精品永久一区| 亚洲区小说区图片区|