[原創!電腦書評] 駭客的修練:使用IDA Pro進行底層分析
影片網址: https://goo.gl/hR0J6E
#BooksReview #Hacking #IDAPro #ReverseEngineering
最近一些事情比較忙,加上夏秋交替,紮紮實實地發燒感冒了三天,所以一直沒空把這本秋聲老師的書「駭客的修練:使用IDA Pro進行底層分析」好好看完。所幸身體漸漸康復,就用了一點時間看完後,向大家做個報告,當成大家選購書籍時的參考。
先講結論:毫無懸念的五顆星滿分!這本書不論在「封面與內容相符」、「章節結構完整」、「主題涵蓋度」、「內容可看性」、以及「文句版面編排順暢度」,都找不到可以挑剔的地方。雖然我很少給一本書滿分,但是這本對我來說,實在找不到扣分的地方。
這本書最大看點,就是把你平常 C 語言的語法,諸如:分支、迴圈、陣列、指標,寫個簡單的範例程式後,用 Visual Studio 與 IDA Pro 取得反組譯程式碼(組合語言),藉由比對反組譯後的組合語言,與原來的 C 語言語法,瞭解 C 語言在底層是如何運作的。看完後,可以讓人看破解後反組譯出來的組合語言時,能「眼看『組合』,腦中想『C』」,增加駭客本人的程式解讀能力。
就算你不當駭客,看完後也能對「陣列」、「指標」... C 語言難點,在瞭解底層運作原理後,反過來對 C 語法有更深一層的認識。非常推薦「學過 C 語言,想加深理解,或往駭客領域前進」的朋友研讀。
影片中我逐章說明各小節重點,也幫大家用「心智圖(Mindmap)」整理出我的讀書心得。希望大家看完後,能對這本書有多一點的認識,然後我看完這本書的心情,能多少傳達給各位就好了。
喜歡我的影音書評,麻煩大家給我個讚,鼓勵鼓勵。或者轉發 Facebook 好友,跟大家一起分享,甚至於組個讀書會都很不錯喔!也歡迎大家訂閱我的 YouTube 頻道,可以在第一時間收到我影片上傳的通知(有時候我放著電腦沒關去睡覺,就任由它上傳處理了。所以大家直接訂閱 YouTube 頻道有可能在我還沒寫 Facebook 評論時就看到了喔)!夏秋交替,請大家注意身體,別跟我一樣感冒了(合十)!
https://youtu.be/sUL4WvrPYAk?list=PLpUEV8DQx3NJJa0oyWzjxDdDNY1MNlnQn
同時也有6部Youtube影片,追蹤數超過4萬的網紅吳老師教學部落格,也在其Youtube影片中提到,VBA到Python程式開發202101第10次上課 01_重點回顧與JSON資料勞退收益率 02_國內主要經濟指標與解析XML 03_下載與儲存XML檔與解析並存為CSV檔 04_將GOOGLE雲端當CSV來源 05_安裝b44套件與下載TQC網站 06_TQC網頁資料擷取基礎 完整教學 ht...
「函數指標範例」的推薦目錄:
- 關於函數指標範例 在 紀老師程式教學網 Facebook 的最讚貼文
- 關於函數指標範例 在 紀老師程式教學網 Facebook 的最佳貼文
- 關於函數指標範例 在 吳老師教學部落格 Youtube 的精選貼文
- 關於函數指標範例 在 吳老師教學部落格 Youtube 的最讚貼文
- 關於函數指標範例 在 吳老師教學部落格 Youtube 的最佳貼文
- 關於函數指標範例 在 Re: [問題] 關於函數指標的參數型別轉型- 看板C_and_CPP 的評價
- 關於函數指標範例 在 C語言-指標 - 鋼彈盪單槓 的評價
- 關於函數指標範例 在 C 程式語言第六章6-9 函數指標Function Pointer 的評價
函數指標範例 在 紀老師程式教學網 Facebook 的最佳貼文
[免費電子書] 厚達 1400 頁的「反向工程」電子書(英),駭客學習恩物!完全免費下載!
"Reverse Engineering for Beginners"
http://goo.gl/VSUZgd (電子書下載網址)
大家好久不見!因為一些私人的因素(主要是健康&工作),所以不得不暫停這個粉絲頁的發文這麼久。但有發私訊問問題的朋友就知道,我大多在一天/24 小時以內,就會回答各位的問題。所以我沒有忘記大家喔!
今天要介紹的是一本俄國網友寫的「Reverse Engineering for Beginners」的免費電子書。這本書是特別寫給對「駭客技術」有興趣、但不知如何入門的人。我翻了一下,發覺他講得很仔細!先從 CPU 架構介紹起,然後以世界上最簡單的程式「Hello! World!」為範例,教你如何從執行檔「逆推」原始碼,再慢慢增加「陣列」、「函數」、「指標」...等逆推技巧。以豐富程度來論,這是我見過寫得最掏心掏肺的書了!強力推薦給對「逆推執行檔-->原始碼」有興趣的朋友!
該作者也有個小小網站,號召有志之士幫忙翻譯成它國語言。目前韓文版已經出書,據作者說中文版有人翻譯中?(不過我猜應該是簡體中文)總之,想多瞭解一點這本書或是作者的朋友,推薦您到他的網站看看喔!網址是:
http://beginners.re/
真的對英文苦手的朋友,我明天推薦一本最近出版的駭客中文書!敬請期待!
有任何問題,都歡迎在下方討論。努力發文就是真心期待喜歡程式設計的人又多了一點!希望我提供的這些訊息對您有幫助!覺得不錯的話,麻煩您按讚或者是轉貼鼓勵一下囉!
函數指標範例 在 吳老師教學部落格 Youtube 的精選貼文
VBA到Python程式開發202101第10次上課
01_重點回顧與JSON資料勞退收益率
02_國內主要經濟指標與解析XML
03_下載與儲存XML檔與解析並存為CSV檔
04_將GOOGLE雲端當CSV來源
05_安裝b44套件與下載TQC網站
06_TQC網頁資料擷取基礎
完整教學
http://goo.gl/aQTMFS
吳老師教學論壇
http://www.tqc.idv.tw/
教學論壇(之後課程會放論壇上課學員請自行加入):
https://groups.google.com/forum/#!forum/tcfst_python_2021_1
課程簡介:入門
建置Python開發環境
基本語法與結構控制
迴圈、資料結構及函式
VBA重要函數到Python
檔案處理
資料庫處理
課程簡介:進階
網頁資料擷取與分析、Python網頁測試自動化、YouTube影片下載器
處理 Excel 試算表、處理 PDF 與 Word 文件、處理 CSV 檔和 JSON 資料
實戰:PM2.5即時監測顯示器、Email 和文字簡訊、處理影像圖片、以 GUI 自動化來控制鍵盤和滑鼠
上課用書:
參考書目
Python初學特訓班(附250分鐘影音教學/範例程式)
作者: 鄧文淵/總監製, 文淵閣工作室/編著?
出版社:碁峰? 出版日期:2016/11/29
Python程式設計入門
作者:葉難
ISBN:9789864340057
出版社:博碩文化
出版日期:2015/04/02
吳老師 110/4/27
EXCEL,VBA,Python,自強工業基金會,EXCEL,VBA,函數,程式設計,線上教學,PYTHON安裝環境
![post-title](https://i.ytimg.com/vi/yE1f9w0zlto/hqdefault.jpg)
函數指標範例 在 吳老師教學部落格 Youtube 的最讚貼文
VBA到Python程式開發202101第10次上課
01_重點回顧與JSON資料勞退收益率
02_國內主要經濟指標與解析XML
03_下載與儲存XML檔與解析並存為CSV檔
04_將GOOGLE雲端當CSV來源
05_安裝b44套件與下載TQC網站
06_TQC網頁資料擷取基礎
完整教學
http://goo.gl/aQTMFS
吳老師教學論壇
http://www.tqc.idv.tw/
教學論壇(之後課程會放論壇上課學員請自行加入):
https://groups.google.com/forum/#!forum/tcfst_python_2021_1
課程簡介:入門
建置Python開發環境
基本語法與結構控制
迴圈、資料結構及函式
VBA重要函數到Python
檔案處理
資料庫處理
課程簡介:進階
網頁資料擷取與分析、Python網頁測試自動化、YouTube影片下載器
處理 Excel 試算表、處理 PDF 與 Word 文件、處理 CSV 檔和 JSON 資料
實戰:PM2.5即時監測顯示器、Email 和文字簡訊、處理影像圖片、以 GUI 自動化來控制鍵盤和滑鼠
上課用書:
參考書目
Python初學特訓班(附250分鐘影音教學/範例程式)
作者: 鄧文淵/總監製, 文淵閣工作室/編著?
出版社:碁峰? 出版日期:2016/11/29
Python程式設計入門
作者:葉難
ISBN:9789864340057
出版社:博碩文化
出版日期:2015/04/02
吳老師 110/4/27
EXCEL,VBA,Python,自強工業基金會,EXCEL,VBA,函數,程式設計,線上教學,PYTHON安裝環境
![post-title](https://i.ytimg.com/vi/LiWLwXOlu-M/hqdefault.jpg)
函數指標範例 在 吳老師教學部落格 Youtube 的最佳貼文
VBA到Python程式開發202101第10次上課
01_重點回顧與JSON資料勞退收益率
02_國內主要經濟指標與解析XML
03_下載與儲存XML檔與解析並存為CSV檔
04_將GOOGLE雲端當CSV來源
05_安裝b44套件與下載TQC網站
06_TQC網頁資料擷取基礎
完整教學
http://goo.gl/aQTMFS
吳老師教學論壇
http://www.tqc.idv.tw/
教學論壇(之後課程會放論壇上課學員請自行加入):
https://groups.google.com/forum/#!forum/tcfst_python_2021_1
課程簡介:入門
建置Python開發環境
基本語法與結構控制
迴圈、資料結構及函式
VBA重要函數到Python
檔案處理
資料庫處理
課程簡介:進階
網頁資料擷取與分析、Python網頁測試自動化、YouTube影片下載器
處理 Excel 試算表、處理 PDF 與 Word 文件、處理 CSV 檔和 JSON 資料
實戰:PM2.5即時監測顯示器、Email 和文字簡訊、處理影像圖片、以 GUI 自動化來控制鍵盤和滑鼠
上課用書:
參考書目
Python初學特訓班(附250分鐘影音教學/範例程式)
作者: 鄧文淵/總監製, 文淵閣工作室/編著?
出版社:碁峰? 出版日期:2016/11/29
Python程式設計入門
作者:葉難
ISBN:9789864340057
出版社:博碩文化
出版日期:2015/04/02
吳老師 110/4/27
EXCEL,VBA,Python,自強工業基金會,EXCEL,VBA,函數,程式設計,線上教學,PYTHON安裝環境
![post-title](https://i.ytimg.com/vi/6DftP-k7tsE/hqdefault.jpg)
函數指標範例 在 C語言-指標 - 鋼彈盪單槓 的推薦與評價
減法則是往前N個資料型態的長度,下面是double指標的範例程式 ... C語言的函數呼叫都是傳值呼叫(Call by value),也就是每次呼叫時都複製一份給函數. ... <看更多>
函數指標範例 在 C 程式語言第六章6-9 函數指標Function Pointer 的推薦與評價
![影片讀取中](/images/youtube.png)
C 程式語言第六章6-9 函數指標 Function Pointer網站:http://www.justinwu.com.tw立即加入吳老師教學中心@Line:https://line.me/R/ti/p/%40justinwu吳 ... ... <看更多>
函數指標範例 在 Re: [問題] 關於函數指標的參數型別轉型- 看板C_and_CPP 的推薦與評價
: ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.229.13.151
: ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1498401215.A.09D.html
: 推 littleshan: compatible type有嚴格的定義,基本上就是相同的type 06/25 23:13
: → littleshan: 「可以互轉」並不表示它們是compatible type 06/25 23:13
:
: 原來如此!
: 另外想再問一下這篇:https://goo.gl/VnXBVn
: 為甚麼這篇底下說如果滿足那個轉型的假設,就可以讓這個轉型的行為符合預期?
: 印象中任何非函數指標轉到char*,都是可行的。
: void*和char*的對齊要求有可能不一樣嗎?
: (參考自這篇:https://goo.gl/UyQr15)
:
: 還麻煩各位大大了,感激不盡m(_ _)m
趁這機會回一下好了
這邊算是許多 C 使用者常見的誤解
對某個物件進行轉型時,C 並不保證底層的 binary representation 是相同的。
舉個例子:你可以把 int 轉成 double,再把同一個 double 轉回成 int
在大多數的平台上,因為 double 的精度夠用,所以轉過去再轉回來的值是相同的。
但這是否表示 int 和 double 使用相同的位元格式來儲存資料?當然不是。
純粹只是 compiler 幫你做了一種可逆的格式轉換
所以,如果你宣告一個 function 其參數是吃 double*,
但你卻直接傳遞一個 int* 給它,儘管 int 可以安全地轉換成 double,
但是 function 內並不知道進來的其實是 int*,其結果為 undefined behavior。
那麼指標呢?比如說 void* 與 int* 的確可以互轉,
但 C 標準從未明說他們使用相同的 binary representation。
假設有一個 compiler 在看到 int* 轉成 void* 時,把內容做了 binary not
然後從 void* 轉回 int* 時,又做了一次 binary not
那麼這個 compiler 確實可以滿足 C 標準中,
「指標轉型至void*再轉回原本型別時,可取得原值」的規定。
「太扯了吧!真的有這麼惡搞的 compiler 嗎?」
很不幸地,許多作業系統並不使用線性的記憶體空間
比如說這個例子 https://c-faq.com/null/machexamp.html
在這個系統上,你寫 void* p = (void*)0 時,
compiler 實際上會在 p 的內容填入 07777:0
當然,現在的主流作業系統並沒有這種奇葩的設計,
大部份的平台上 void* 與 int* 的 binary representation 是相同的,
但你只要做了這個假設,自己心裡就得有個底,這已經打破了 portable 的規範。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.225.52.224
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1498487581.A.281.html
因此我稍微修改了文章中的範例
void* 與 char* 的 representation 相同,是否表示他們是 compatible type?
依照標準的邏輯,compatible type 必需要有相同的 representation
但反過來是否成立,老實說我不知道 orz
如果是,表示 strcmp 可以轉型後傳入 qsort (前提是排序對象為二維陣列)
但就算可以,我也不是很想看到大家真的這樣用
※ 編輯: littleshan (36.225.52.224), 06/27/2017 00:50:27
... <看更多>