久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Windows優(yōu)化大師的一點研究

 9loong 2008-09-16
    以英文版v7.80.8.218來研究,,這個應該是目前最新的公開發(fā)布的版本了,。

    安裝程序是最新的Inno Setup 5.2.2制作的安裝程序,Inno Setup是用Delphi 2編譯的,,因此與Delphi做的應用軟件是很配的,,就如用C++做的程序喜歡用NSIS打包一樣。Inno Setup 5.2.2也是目前發(fā)布的最新版本了,,最近的幾次更新,,Inno Setup也是一直在改進對于Vista系統(tǒng)的支持。Inno Setup還有一個優(yōu)點,,就是可以設置壓縮方式為lzma/ultra,,這樣可以生成最小的安裝包,節(jié)約用戶的下載時間,。

    接下來就開始解剖安裝程序,,請出Universal Extractor這個工具(當然直接用命令行工具innounp.exe也可以),解包完成,,來看看解出來的文件,。

    Setup.e32 真正的安裝執(zhí)行文件,作用相當于Installshield的Engine了
    flist.bin   看起來像是script.bin的索引文件
    script.bin 腳本編譯后的二進制文件,,重點來看看這個文件

    看到安裝開始就刪除了不少的中文的快捷方式,,可能是方便那些測試人員,免得他們一會裝中文版,,一會裝英文版,,開始菜單和桌面上出現(xiàn)一堆重復的快捷方式。然后我看到了有一個網(wǎng)址:http://login./install.php?Ver=7.80.8.218.5,,相信是用來記錄聯(lián)網(wǎng)用戶的軟件安裝情況的以便統(tǒng)計分析,。接下來就是往系統(tǒng)復制文件了,其中{sys}\Iosubsys\Smartvsd.vxd是只有在Win9x下才會安裝,{app}\WoptiDefrag.dll是在非Win9x和非Vista下才會安裝,,{app}\WoptiDefragVista.dll是在Vista下才會安裝,。{tmp}\WoptiInfo.dll其實原本叫SendInfoDLL的,其作用就是發(fā)出一個HTTP Request到之前我提到的那個網(wǎng)址,。(因為這是一個Delphi編譯的DLL,,并且引用了WinInet這個單元)

    {sys}\Iosubsys\Smartvsd.vxd是支持SMART IOCTL接口的虛擬設備驅動程序,因為Windows被設計為應用程序不能直接訪問底層硬件,,因此需要從設備驅動中獲取相關硬件信息,。Win9x可以直接使用Smartvsd.vxd即可訪問硬盤信息;Windows NT及以后的操作系統(tǒng),,管理員是可以管理硬件設備的,,因此可以用ATA/APAPI的IDENTIFY DEVICE來取得所需信息,但是考慮到用戶權限不一定是管理員,,所以在WinNT/2K/XP下非管理員用戶可以用SCSI后門的方式讀取IDE硬盤信息(Vista下面這招就不靈了),。

    {app}下的所有執(zhí)行文件和DLL都做了數(shù)字簽名,這應該是國際化的需要吧,,畢竟國外更看重這一點,。簽名是用的WoSign(深圳沃通)的證書,好像也不便宜,,1年要1000多。不知為什么,,WoptiDefragVista.dll沒有版本信息,,WoptiUpdate.exe的描述竟然是中文,天吶,,不會沒有專門做英文版的升級程序吧,,看起來像是如此。版本信息里的公司有的是SSN,,有的是Wopti,,版權信息也是不一致,有的產(chǎn)品名稱里還是中文名稱,。且有的[語言]是中文,,有的[語言]是英文,這說明一點,,發(fā)布出去的產(chǎn)品的文件并不是全在同一臺機器上編譯的,。

    LIGHTMAP.PNG應該是作為Texture,與D3DX81ab.dll一起來完成圖形顯示(DirectX)性能的檢測,。

    UpdateServer.ini是一個配置文件,,定義了升級服務器地址,看得出這樣可以支持以后加入多臺升級服務器以滿足用戶數(shù)增長后的升級需求。

    PortsList.inf這個定義文件定義了常見服務的端口使用情況,,可以不斷補充新的定義,。

    ActiveXImmunity.ini (ActiveX插件免疫數(shù)據(jù)庫) 這個文件是收集的插件的CLSID,讓用戶可以有選擇的免疫插件以防中招,。

    SelfRegChg.ini這個文件是原來存放自定義優(yōu)化設置,,默認帶2個設置,一個是支持Win2000使用超過137G大硬盤,,另一個是取消磁盤容量警告的設置,,應該是讓用戶將自己特殊的優(yōu)化設置定義后在軟件中應用。

    Empty.ico 是用來隱藏快捷方式上的箭頭的透明圖標,。

    WoptiHWDetect.sys 就是原來的gwiopm.sys,,是用來在NT下做I/O端口操作的服務程序。

    WoptiHelp.chm 幫助文件,,是用Help & Manual(專業(yè)的幫助制作工具,,雖然安裝程序不到30M,可比起Adobe RoboHelp來說算是苗條多了)制作的,,里面沒有一副圖片,,所以幫助文件才100多K。
    Big5.dat, Devs.Dat, JEDEC.dat, MonV.Dat 開始我還以為是什么加密格式,,后來仔細一看,,文件開頭的兩個字節(jié)"78 DA"(最大壓縮率), "78 9C"不是標準的ZLib壓縮格式的標志嗎,顯然這里的壓縮也起到了一定的加密效果(因為沒有文件頭,,所以壓縮工具都不能打開文件),。這些Dat文件會在運行后需要時自動解壓為同名的.tmp臨時文件。MonV.Dat解壓生成MonV.tmp后,,又迅速的被刪除了,。
    Devs.tmp (芯片檢測數(shù)據(jù)庫) 臨時文件,打開是一個文本文件,,里面是設備ID與名稱的對照表,。
    JEDEC.tmp (SPD 廠商數(shù)據(jù)庫) 臨時文件?
    [ 注:JEDEC = Joint Electron Device Engineering Council (電子元件工業(yè)聯(lián)合會) ]
    Big5.dat 應該是注冊驗證需要的東西吧,。
    MonV.Dat 不知道干什么用的,,也是注冊驗證需要的東西?

    Set.ini 運行后才會生成,,里面是保存的用戶設置,,看起來所有的外置工具都是存取的這個設置文件。

    Wopti.log 運行后才會生成,,是記錄的操作日志,。

    D3DX81ab.dll 這個文件被ASPack壓縮過,,可其他的exe和dll都沒有被壓縮。

    WoptiDefrag.dll和WoptiDefragVista.dll (磁盤整理組件) 都是用VC的MIDL編譯的,,而且還是ActiveX控件,。里面提供的是DefragControl Class。

    WoptiCDRomContmenu.dll 也是可以注冊的COM文件,,但是是用Delphi開發(fā)的,。作用是Context Menu Handler,就是利用Windows提供的接口做外殼擴展,,為所有文件類型的右鍵菜單上增加2個項目,,分別是打開光驅和關閉光驅。但是我這里選中菜單時下面的狀態(tài)欄上會出現(xiàn)亂碼(不知道是不是Delphi不支持Unicode的原因),。regsvr32 WoptiCDRomContmenu.dll 執(zhí)行后則增加菜單,,regsvr32 WoptiCDRomContmenu.dll /u 執(zhí)行后則移除菜單。核心代碼當然是對winmm.dll的mciSendCommand, mciSendString的調用,。

    Woptiglobe.dll 是用Delphi 7開發(fā)的,,三個導出函數(shù):WoptiChkFileIsOK,WoptiCtrlHomepage,,WoptiSetMaxthon

    WoptiP2P.dll (進程功能庫) 是用Delphi 7開發(fā)的,,也是三個導出函數(shù):WomTerminateProFromName,WomTerminateProcess,,GetPort2ProcessList

    WoptiUtils.dll 是用VC7開發(fā)的,,只有一個導出函數(shù):ClearTracksForVista

    WoptiMem.exe (內存整理) 是用Delphi 7開發(fā)的,可以看出整理內存還是采用的請求大內存迫使操作系統(tǒng)將不常用進程所占用的內容轉移到虛擬內存,,以達到整理內存碎片的作用,。

    WoptiProcess.exe (進程管理器) 是用Delphi 7開發(fā)的,靜態(tài)鏈接了WoptiP2P.dll的GetPort2ProcessList函數(shù),。

    WoptiUpdate.exe (在線升級) 是用Delphi 7開發(fā)的,升級信息地址是:http://liveupdate./updatefilelist.zip,,奇怪的是定義了.zip后綴,,返回的卻是文本文件。這個文件只有中文信息,,應該是放錯了版本,。

    WoptiUtilities.exe (主程序) 是用Delphi 7開發(fā)的,靜態(tài)鏈接了WoptiP2P.dll的GetPort2ProcessList函數(shù),。所用第三方控件大概如下:

Fast Memory Manager 優(yōu)秀的內存管理程序,,使用其帶來的額外好處是可以很容易發(fā)現(xiàn)程序中代碼引起的內存泄漏
TRegExpr  Delphi下唯一有公開源代碼的正則表達式控件
SimpleTimer  輕量級的定時器,精度雖然與TTimer一樣,,但是它是從TObject繼承下來的,,而且多個實例可以共享同一句柄
MaxMem   內存深度整理
MiTeC System Information Component  系統(tǒng)信息檢測
CoolTrayIcon  托盤控件
ActivePorts  查看系統(tǒng)端口的使用情況
DhCheckFolder  可供選擇的系統(tǒng)目錄及磁盤查看控件
TMS Components  一套功能很全的界面功能控件
APNetscapeLabel  仿Netscape Communicator的性能對話框的標簽的控件,,作標題欄用
mxOutlookBar Pro 左邊的欄目選擇組件
Virtual Treeview 功能強大的樹形控件,也可以當作表格用
FlatStyle  按鈕,,輸入框等平面風格控件
Magenta Systems WMI and SMART Component  通過WMI,,SMART,SCSI獲取更詳細準確的系統(tǒng)信息
IPInfo   利用IP Helper API獲取網(wǎng)絡配置以及適配器信息
DelphiX   DirectX的Delphi接口控件
ZLib   提供壓縮功能
Indy   網(wǎng)絡通訊控件
TeeChart  用來顯示餅圖等
md5,,Blowfish,,F(xiàn)GIntRSA,RC6 都是密碼學相關的算法實現(xiàn)單元,,可以用到注冊驗證以及加密文件,。

    有開發(fā)人員是用微軟拼音的,很容易就會把輸入框控件的ImeName自動設置成"中文 (簡體) - 微軟拼音",。

    可以肯定的是,,注冊驗證一定是用到了RSA算法,沒有對主程序做加殼等保護處理,,就是說不太可能被人分析代碼而寫出注冊機,,但是被爆破還是難免的。曾經(jīng)的敵人名單:-Arongsoft.com.htm,,Keygen.exe,,wom60_Keygen.exe依然在代碼中定義著。

    界面:

    窗體的Tab鍵也沒有設置按順序跳轉,,ESC不能關閉對話框,。APNetscapeLabel上實現(xiàn)的模擬標題欄的功能有點小問題:當在最大化雙擊恢復時會導致窗體位置被粘連。APNetscapeLabel沒有實現(xiàn)右鍵菜單,,左上角的圖標沒有實現(xiàn)雙擊事件關閉,,這與普通的窗體行為不一致

    下方的狀態(tài)欄是自畫Panel,,實現(xiàn)了上下漸變效果,。左邊的mxOutlookBar被修改了源代碼以實現(xiàn)項目與外部連成一體的效果以及圓角效果。VirtualStringTree被繼承實現(xiàn)TWomccVT,。FlatButton修改成更加平面與實現(xiàn)圓角效果,。


我自己根據(jù)其執(zhí)行文件,寫了一個界面的演示(Source include):
   
http://files.cnblogs.com/Icebird/WoptiUtilitiesDemo.rar
 
( # )

    本站是提供個人知識管理的網(wǎng)絡存儲空間,,所有內容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內容中的聯(lián)系方式,、誘導購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,,請點擊一鍵舉報,。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多