首先將需要重定位的RVA提取出來(lái),再用ReloREC根據(jù)重定位表的定義將這些RVA重新生成一份新的重定位表。
ReloREC工具可以根據(jù)一組重定位的RVA,重新構(gòu)造一個(gè)新的重定位表。首先要做的工作是將UPX外殼這些要重定位的RVA提取出來(lái)。
在處理重定位代碼語(yǔ)句中,下面這句就是對(duì)代碼重定位,其中EBX保存的就是要重定位的地址。
ReloREC這款工具,就是根據(jù)這些RVA重新生成一份新的重定位表
準(zhǔn)備工作完成,運(yùn)行ReloREC,將Relo.bin拖放到ReloREC主界面上可打開(kāi)此文件,如圖13.53。然后在dumped_.dll里找一塊空白代碼處保存重定位表(一般在UPX1或UPX2區(qū)塊里找),在這選擇C000h處。在Relocation's RVA域里填上新重定位表的RVA地址,本例為C000h,最后單擊“Fix Dump”按鈕,打開(kāi)上節(jié)剛修復(fù)輸入表的dumped_.dll文件,即可完成重定位表的修復(fù)。