UnFoxAll是一套基于'逆向工程'原理的適合Fox所有系列文件的反編譯工具。FOX各版本數(shù)據(jù)庫開發(fā)語言采用偽編譯的編譯方式,為反編譯提供了理論基礎(chǔ)。到目前為止,我國正在使用的數(shù)據(jù)庫軟件絕大部分仍是由FOX系列軟件開發(fā)的,鑒于FOX系列文件的強(qiáng)大的數(shù)據(jù)庫功能和不斷增強(qiáng)的數(shù)據(jù)處理能力,在今后相當(dāng)長的一段時(shí)期內(nèi),F(xiàn)OX系列軟件仍將作為主要的數(shù)據(jù)庫開發(fā)工具!
FoxPro反編譯工具可以完整的從FOX所有版本(FoxBase, FoxPro2.x for DOS/Windows, VFP3.0/5.0/6.0)開發(fā)的EXE,.APP,.FOX,.SPX, .MPX, .QPX, .PJT及其他文件中完整反編譯出所有源程序及其他文件這是它的演示版,其功能限制為:反編譯文件所包含的文件個(gè)數(shù)不能超過40個(gè)!
優(yōu)點(diǎn):界面和功能較實(shí)用
缺點(diǎn):支持到vfp6 sp3后再?zèng)]更新,反編譯還有不少錯(cuò)誤,尤其是SQL語句方面,表單代碼沒法反編譯。
FOX反編譯的必要性:
源碼遺失:對(duì)開發(fā)人員而言,源碼遺矢,而用戶提出增加、修改升遷數(shù)據(jù)庫系統(tǒng)部分功能的要求時(shí)使用本軟件得到源碼。
病毒破壞:由于數(shù)據(jù)庫系統(tǒng)遭到計(jì)算機(jī)病毒破壞或計(jì)算機(jī)掉電而造成數(shù)據(jù)庫系統(tǒng)不能正常運(yùn)行或無法運(yùn)行,而原程序又無備份,使用本軟件得到程序源碼。
失去維護(hù): 任何軟件都有其適用期 ,如果數(shù)據(jù)處理算法、計(jì)算方法、功能已不符合現(xiàn)行的規(guī)則,而由于種種原因無法獲得原開發(fā)商的升遷、更改、維護(hù),可用本軟件得到程序源碼后進(jìn)行再開發(fā)。
學(xué)術(shù)研究: 基于學(xué)術(shù)研究的目的,在獲得版權(quán)所有者許可的情況下進(jìn)行編程技巧、風(fēng)格的學(xué)習(xí)研究。
其主要功能如下:
全能反編譯
完整的從FOX所有版本(Foxbase,FoxPro
2.x for DOS/Windows,Visual FoxPro3.0, Visual FoxPro 5.0,Visual Foxpro
6.0)開發(fā)的.EXE,.APP,.FOX,.SPX,.MPX,.QPX,.PJT等文件中反編譯出全部源程序及其他文件。
五次文件掃描定位
針對(duì)各種非標(biāo)準(zhǔn)格式FOX文件
UNFOXALL采用多達(dá)5次的文件掃描定位,只要是FOX編譯產(chǎn)生的文件,都可成功反編譯!
(1).標(biāo)準(zhǔn)文件掃描快速定位策略
根據(jù)FOX文件結(jié)構(gòu)快速定位,大部分FOX文件經(jīng)過此次掃描定位可成功反編譯。
(2).標(biāo)志掃描方式
全文搜索并進(jìn)行身份ID嘗試鑒別定位文件,適用于文件頭部損壞,尾部損壞或附帶垃圾數(shù)據(jù)等不完整文件。
(3).掃描以加密方式編譯生成的FOX文件并自動(dòng)解碼還原。
(4).掃描以非正常文件名方法加密的文件。
目前,有相當(dāng)一部分FOX開發(fā)的軟件采用非正常文件名方法的加密方法。(即修改文件內(nèi)部的文件名信息,置為ASCII碼2Dh以下的字符,由于操作系統(tǒng)本身的原因,普通反編譯軟件在創(chuàng)建這類文件名時(shí)會(huì)出錯(cuò),從而導(dǎo)致可反編譯失。︰NFOXALL對(duì)這類軟件采用自動(dòng)產(chǎn)生別名的方法特殊處理,因此可順利反編譯。
(5).提供功能強(qiáng)大的萬能脫殼工具deshell.exe,可反編譯使用二次加密的文件。
由于相當(dāng)一部分FOX
2.x for dos/windows的數(shù)據(jù)庫軟件采用套加密反跟蹤,當(dāng)軟件的數(shù)據(jù)處理算法,計(jì)算方法,功能已不符合現(xiàn)實(shí)情況而確需修改時(shí)
,必將給工作帶來極大的損失和不便,而常常是多個(gè)加密軟件層層嵌套加密,手工脫殼難度極大,而且脫殼產(chǎn)生的文件由于極難和標(biāo)準(zhǔn)文件一致,故很難進(jìn)行反編譯。針對(duì)這類情況,UNFOXALL采用'概念脫殼'的全新思路,采用動(dòng)態(tài)解密的方法,對(duì)于目前所有的FOX
2.x for
dos/windows加殼軟件,單獨(dú)或多種加密軟件嵌套加密過的程序可自動(dòng)成功脫殼,同時(shí)由于采取是'概念脫殼'的全新思路,也可以對(duì)付未來的加密外殼,(對(duì)于FoxPro和Visual
FoxPro,如果加密軟件修改了其動(dòng)態(tài)解釋庫的編譯方法則不能直接反編譯,因?yàn)榧舆^密的文件已不是標(biāo)準(zhǔn)文件格式,須單獨(dú)處理)。
可自動(dòng)創(chuàng)建工程文件
UNFOXALL可自動(dòng)根據(jù)反編譯結(jié)果創(chuàng)建FOX工程文件。適用于FoxPro 2.x for dos/windows,Visual FoxPro 3.0/5.0/6.0。提供工程文件自動(dòng)創(chuàng)建工具 BuildPjx.PRG。
可自動(dòng)添加調(diào)試信息及事件代碼
對(duì)于Visual FoxPro而言,其表單文件,可視類庫,DBC文件內(nèi)可以附帶目標(biāo)事件代碼,如果Fox文件在最初編譯時(shí)去掉調(diào)試信息選項(xiàng),則反編譯后重新編輯時(shí)不能看到源代碼。UnFoxAll可對(duì)其進(jìn)行反編譯并將源代碼存放入相應(yīng)字段。從而可以重新編輯事件代碼。
支持只反編譯文件部分文件
即時(shí)查看反編譯結(jié)果
在反編譯時(shí)可以即時(shí)的查看PRG,TXT等文件的內(nèi)容
內(nèi)建強(qiáng)制覆蓋反編譯功能
在以下情況下您可以選擇強(qiáng)制覆蓋反編譯:
Visual Foxpro
3.0/5.0/6.0允許表單,可視類庫,DBC文件中調(diào)用在 *.H
中定義的常量,在FoxPro編譯時(shí),這些常量將被其代碼值代替。
VFP把編譯后的代碼存儲(chǔ)到表單,可視類庫,DBC文件的OBJCODE字段中,編譯時(shí)如果選擇'帶調(diào)試信息',由于
*.h為非必選發(fā)布文件由于在這種情況下工程文件內(nèi)的scx/vcxs內(nèi)已包含源代碼,如果不選擇強(qiáng)制覆蓋反編譯,但由于 *.h
未發(fā)布,故在重新編譯時(shí)可能會(huì)出現(xiàn)'找不到頭文件'的錯(cuò)誤?蛇x擇強(qiáng)制覆蓋反編譯解決此問題。
提供SPR->SCX,MPR->MNX可視化編輯的強(qiáng)大轉(zhuǎn)化工具SPR2SCX.PRG
在FOXPRO
2.5/2.6中,可以利用‘屏幕生成器’編寫屏幕文件(其生成文件為*.scx/*.sct);也可利用‘菜單生成器’編寫菜單文件(其生成文件為*.mnx/*.mnt)。當(dāng)連編項(xiàng)目時(shí),F(xiàn)OXPRO
2.5/2.6便對(duì)這些文件進(jìn)行整理,生成一個(gè)與prg類似的程序文件*.spr,然后對(duì)此spr文件進(jìn)行偽編譯,生成*.spx并把此spx文件連入工程文件內(nèi),'菜單文件'類似。UNFOXALL在反編譯時(shí),將把*.spx重新轉(zhuǎn)化為*.spr,*.mpx反編譯成*.mpr。但是由于*.spr/*.mpr為純代碼文件,無法實(shí)現(xiàn)可視化編輯,通過SPR2SCX.PRG轉(zhuǎn)化后可以重建屏幕文件和菜單文件,從而實(shí)現(xiàn)可視化編輯。(注:SPR2SCX.PRG
只能處理‘獨(dú)立’的屏幕文件和菜單文件,屏幕文件只能是FOXPRO 2.5/2.6生成的,因?yàn)樵赩isual
Foxpro中不產(chǎn)生*.spx文件,偽目標(biāo)代碼直接存放在*.scx/sct表單文件中)。
徹底的長文件名支持
直接支持Visual Foxpro 6.0 特殊的日期、時(shí)間表示法
操作簡單
反編譯成功率可達(dá)99.9%
UnFoxall
3.0增強(qiáng)版
是針對(duì)企業(yè)用戶的版本,UnFoxAll的3.0增強(qiáng)版增加了對(duì)FoxPro運(yùn)行時(shí)間庫的分析。可以反編譯部分修改運(yùn)行時(shí)間庫方法加密的程序。另外對(duì)知識(shí)庫也進(jìn)行了技術(shù)改進(jìn)。
unfoxall的3.0版加強(qiáng)對(duì)foxpro加密程序的反編譯能力。