看板 C_and_CPP 關於我們 聯絡資訊
之前有需要寫個撲克牌小遊戲來練習 因為沒有圖片所以找了一些網頁抓圖 我印象中我有找到一個網頁 講說他圖片是從windows接龍擷取出來的 而我剛剛針對這去找 花了半小時找不到......之前找到的相關文章 找到了這http://www.ucware.com/apev/index.htm 似乎是有辦法從DLL或EXE擷取資料 可是他扯到了PE 這名詞我不曉得是什麼... http://en.wikipedia.org/wiki/Portable_Executable 似乎是windows的產物. 以下是我想問 以我所知 要讀一個dll動態的方式就是LoadLibrary(dll路徑) 可是這樣就 全load到記憶體了吧 如果這DLL 裡面包含圖片或是啥資訊 我該如何去讀出來呢? 同樣的如果是包在EXE...這樣EXE會變肥之外 讀到memory也會花更多時間吧? 這樣有甚麼優點..... 又該以什麼方法去讀回來 簡單來講 我該如何不用第一個連結的tool自己寫parser去擷取出dll或exe的圖檔嗎? 因為印象中很久以前使用BCB6時 TImage component可以在IDE選擇要讀哪個圖檔 可是那個圖檔在build出EXE後 就不需要它了 給別人EXE就有圖檔資訊... 他也是用這技術嗎? 每個exe檔案都有個icon 似乎也是用這技術記錄在exe裡面? 因為平常寫小程式按個F5 跑出EXE就不管它了.... 但現在想想 如果是我 我該如何把BMP或是其他資訊嵌入到exe或是dll呢... 以前dll都是包export method...沒想過export圖檔... 這樣是否也能初步的保護自己的圖資不被第一時間給user看到.... 相關資訊我實在不知用啥關鍵字google= = 可否請熟知這部分的板友提供一些想法 謝謝你 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.192.70.221
king19880326:你的問題一樣卡在記憶體管理的機制. 但是你很神奇, 10/12 03:07
king19880326:每次都問一點問一點, 不回去看課本又想很多 10/12 03:07
king19880326:PE 是 windows 上面 executable 的 format 10/12 03:08
king19880326:在目前 x86 的架構下, 利用 segment 來對記憶体作佈 10/12 03:09
king19880326:局是很恰當的. 連帶影響到 executable 的設計方式 10/12 03:10
king19880326:如果要藏圖, 一般會另外放其他的 segment, 而不是你 10/12 03:10
king19880326:所熟知的 .text, .data 這些 segment 10/12 03:11
king19880326:在 Linux 下可以用 objcopy 去辦到 10/12 03:11
king19880326:這個部份 jserv 有提到過 http://0rz.tw/dsWU3 10/12 03:12
king19880326:另外你在程式設計師的修養一書裡面也會提到 10/12 03:13
king19880326:至於你說的 parser, 你需要的是讀懂 PE/COFF format 10/12 03:13
king19880326:的架構, 換言之就是你必須用 hexedit 之類的東西去好 10/12 03:14
king19880326:好重新檢視你的 executable/object file 10/12 03:16
king19880326:這是 PE/COFF 的 spec: http://0rz.tw/L9UQK 10/12 03:17
king19880326:再來你提到的 LoadLibrary, 現在你常用的作業系統都 10/12 03:18
king19880326:該是用 page + MMU 的機制去管理, 是不是整個 load 10/12 03:19
king19880326:到記憶体我想是不見得 10/12 03:19
king19880326:最後你所說的優點, 我想優點就是像你這類的使用者就 10/12 03:21
king19880326:無法把圖萃取出來吧 10/12 03:22
QQ29:謝謝K大講解 慢慢理解~但確實基礎不好我也不知從何看起 10/12 09:04
QQ29:請問要會K大說的這些 那些基礎書籍有講呢? 恐龍本? 10/12 09:06
stupid0319:如果放在資源區塊內,LoadIcon不是能讀出來嗎??? 10/12 09:33
purpose:king大很有心,回得很詳細 10/12 10:24
loveflames:原po大概得看IMAGE_RESOURCE_DIRECTORY,我對import、 10/12 18:00
loveflames:export table跟重定位比較熟悉 10/12 18:01
king19880326:恐龍書我只看到第七版, 在我看來只是玩具程度的教科 10/13 02:13
king19880326:書. 第八版我沒看不敢說 10/13 02:13
king19880326:原因是因為恐龍書闡述的其實跟現實生活中有很大的落 10/13 02:13
king19880326:差. 看完了你還是不知道現實世界實作的細節 10/13 02:14
king19880326:推薦你 William Stallings 的 Operating Systems: 10/13 02:15
king19880326:Internals and Design Principles. 這本書也是理論為 10/13 02:16
king19880326:主, 但他考慮到現實生活中的硬體. 並會對一些設計探 10/13 02:16
king19880326:究其原因 10/13 02:17
king19880326:另外一本是 Andrew S. Tanenbaum 的Operating System 10/13 02:18
king19880326:: Design and Implementation. 他本人實作了一個教學 10/13 02:18
king19880326:用的 os minix. 這本書就是在講他的設計與程式碼 10/13 02:19
king19880326:minix 的程式碼不多, 三萬行. 大概一兩個月可以看完 10/13 02:19
king19880326:看完你就知道整個 os 在幹嘛了 10/13 02:19