.net文件結(jié)構(gòu)之托管資源

由于在書里沒有找到具體的托管資源數(shù)據(jù)結(jié)構(gòu),這個過程主要通過dnlib源碼進(jìn)行分析崩泡。


以上是本次研究使用的樣本禁荒,目的是能夠順利讀取到托管數(shù)據(jù)中的PE文件,即“資源正文”(便于理解)角撞。


源碼開始就做了一個4字節(jié)的判定呛伴,因此在不明含義的時候勃痴,先把他當(dāng)作一個四字節(jié)的固定標(biāo)識來看。


接著是一個checkreader函數(shù):


也就是標(biāo)識符热康,后面4個字節(jié)(4-8)為numReader沛申,8-12就是readersdSize,后面是resourceReaderFullName和resourceSetFullName兩個字符串姐军。


接下來铁材,是三個整型,分別為version奕锌,numResources, numUserTypes:


可以看到著觉,版本2,資源數(shù)目為2個:

驗(yàn)證一下:

順便拿來另一個資源數(shù)據(jù)來看歇攻,版本2固惯,資源數(shù)目12個。

后面就是基于numUserTypes讀取了一波字符串缴守,然后不當(dāng)人的弄了一個reader的position賦值葬毫,~在C#里是按位取反運(yùn)算符是一元運(yùn)算符,具有"翻轉(zhuǎn)"位效果屡穗,即0變成1贴捡,1變成0,所以 0000 0111 變成1111 1000:

復(fù)習(xí)了一下補(bǔ)碼反碼的知識:

負(fù)數(shù) = 負(fù)數(shù)的絕對值按位取反+1

負(fù)數(shù)按位取反+1 =負(fù)數(shù)的絕對值

因此1111 1000值為-8

那也就是說村砂,當(dāng)前的位置(當(dāng)前應(yīng)該指向第0x0111個字節(jié))會變成 (當(dāng)前偏移+7)& 11111000烂斋,為0x0118。


之后基于numResources會連續(xù)獲取兩組整型數(shù)础废,offsets后面對的尋址有用汛骂。


獲取到dataBaseOffset才算是真正即將開始資源正文,然后獲取資源名稱评腺,和資源偏移加載資源:


至此帘瞭,通過dataBase加上resourceOffset就能夠準(zhǔn)確地找到資源的正文了,前5字節(jié)為7bit編碼整型數(shù)蒿讥,表示資源類型蝶念。算法如下:

之后為正文內(nèi)容,分析結(jié)束芋绸。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末媒殉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子摔敛,更是在濱河造成了極大的恐慌廷蓉,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件马昙,死亡現(xiàn)場離奇詭異苦酱,居然都是意外死亡售貌,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門疫萤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人敢伸,你說我怎么就攤上這事扯饶。” “怎么了池颈?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵尾序,是天一觀的道長。 經(jīng)常有香客問我躯砰,道長每币,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任琢歇,我火速辦了婚禮兰怠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘李茫。我一直安慰自己揭保,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布魄宏。 她就那樣靜靜地躺著秸侣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪宠互。 梳的紋絲不亂的頭發(fā)上味榛,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機(jī)與錄音予跌,去河邊找鬼搏色。 笑死,一個胖子當(dāng)著我的面吹牛匕得,可吹牛的內(nèi)容都是我干的继榆。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼汁掠,長吁一口氣:“原來是場噩夢啊……” “哼略吨!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起考阱,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤翠忠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后乞榨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體秽之,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡当娱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了考榨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片跨细。...
    茶點(diǎn)故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖河质,靈堂內(nèi)的尸體忽然破棺而出冀惭,到底是詐尸還是另有隱情造成,我是刑警寧澤可柿,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站园匹,受9級特大地震影響乐尊,放射性物質(zhì)發(fā)生泄漏戚丸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一扔嵌、第九天 我趴在偏房一處隱蔽的房頂上張望限府。 院中可真熱鬧,春花似錦对人、人聲如沸谣殊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽姻几。三九已至,卻和暖如春势告,著一層夾襖步出監(jiān)牢的瞬間蛇捌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工咱台, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留络拌,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓回溺,卻偏偏與公主長得像春贸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子遗遵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評論 2 345

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

  • 1.編譯程序(1)gcc xx.c,他會默認(rèn)生成一個a.out的可執(zhí)行文件萍恕,在a.out所在目錄,執(zhí)行./a.o...
    萌面大叔2閱讀 1,260評論 0 1
  • 1.編譯程序 (1)gcc xx.c,他會默認(rèn)生成一個a.out的可執(zhí)行文件车要,在a.out所在目錄允粤,執(zhí)行./a....
    萌面大叔2閱讀 460評論 0 1
  • 1 關(guān)鍵字 1.1 關(guān)鍵字的概述 Java的關(guān)鍵字對java的編譯器有特殊的意義,他們用來表示一種數(shù)據(jù)類型,或...
    哈哈哎呦喂閱讀 646評論 0 0
  • 第一天 1.關(guān)鍵字 在Java中關(guān)鍵字是不能設(shè)置成為變量名类垫、方法名司光、包名、類名的悉患! 2.標(biāo)識符 程序員自己定義的名...
    炙冰閱讀 520評論 0 0
  • 基本數(shù)據(jù)類型與引用類型 Java是面向?qū)ο蟮恼Z言残家,在java中一切都可以視為對象。然而购撼,為什么卻會引入基本數(shù)據(jù)類型...
    覓渡技術(shù)閱讀 431評論 0 0