線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3514
推到 Plurk!
推到 Facebook!

如何將 Driver 包裝到程式內

尚未結案
Jeffrey_Chang
一般會員


發表:5
回覆:10
積分:3
註冊:2003-06-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-06-15 01:25:33 IP:61.59.xxx.xxx 未訂閱
我的程式會去呼叫一個 Driver, 請問如何將此 .SYS 的檔包裝到我的程式內. 如此程式就可為一個獨立的執行檔, 請教各位前輩有何方法解決此問題? 謝謝. 發表人 - Jeffrey_Chang 於 2003/06/15 01:27:02 發表人 - Jeffrey_Chang 於 2003/06/15 01:32:24
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-15 09:57:33 IP:211.76.xxx.xxx 未訂閱
.sys? 嗯....我想...你拿到的.sys應該是WDM吧?  依照 >
Jeffrey_Chang
一般會員


發表:5
回覆:10
積分:3
註冊:2003-06-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-06-16 22:20:39 IP:61.59.xxx.xxx 未訂閱
沒錯, 我是寫 Win2000/XP. 你第一個建議, 好像是不可能, 我的功力也達不到. 你第二個建議看似可行, 但要如何做呢? 可否有範例參考. 謝謝你的說明. 我也將朝第二個方法努力.
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-06-17 10:04:30 IP:211.23.xxx.xxx 未訂閱
引言: 沒錯, 我是寫 Win2000/XP. 你第一個建議, 好像是不可能, 我的功力也達不到. 你第二個建議看似可行, 但要如何做呢? 可否有範例參考. 謝謝你的說明. 我也將朝第二個方法努力.
^^~~~~~ 針對你的需求, 我只能給個方向 1. 使用ITP (一種CPU的Hardware tracer, 可以任意時候斷下來), 然而這種機器不是一般市井小民買得起的 ^^" 2. 使用SoftIce, 你可以使用int 3 or 丟IO port的方式, SoftIce都可以斷得到, 只不過最關鍵的AP call WDM, 我當時在SoftIce上看到的是"SYSTEM CALL" 這個組合語言機械碼當時沒有抄下來 ><", 所以你可以試試SoftIce去看call你的WDM前, Register的變化, 然後把"SYSTEM CALL"的機械碼抄下來, 在你的AP裡面試試看, 如果成功的far call過去, 順利通過OS作的call gate, 那你就可以開始把你的.sys 當成data塞到你自己的.exe, 接著只要在AP Load進Memory時, 找到.sys在Memory的起啟位置, 就給他----> "SYSTEM CALL"過去...那就完成了 當你完成第2項時.....你就是Taiwan Number One....以小弟目前所見, 放眼全世界還沒人發表喔.... 希望屆時可以分享你的心得< > 在此, 還是要說那麼的一句話: 我精神上完全支持你, 完成我未完成的心願 < >
Jeffrey_Chang
一般會員


發表:5
回覆:10
積分:3
註冊:2003-06-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-06-19 11:00:35 IP:210.202.xxx.xxx 未訂閱
看來有點難度, 但我想應該有人做出來了才對. 因為 AMI 有個 SE20.EXE 的 Tool 就有此能力, 我猜他是包裝了 Driver 才能在 Win2K/XP 下 Read Write I/O 和 Memory. 不知你對此 Tool 有何見解. 我也想知道它是否用了你說的方法達成的. 等你的好消息.......
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-06-19 15:27:07 IP:211.23.xxx.xxx 未訂閱
引言: 看來有點難度, 但我想應該有人做出來了才對. 因為 AMI 有個 SE20.EXE 的 Tool 就有此能力, 我猜他是包裝了 Driver 才能在 Win2K/XP 下 Read Write I/O 和 Memory. 不知你對此 Tool 有何見解. 我也想知道它是否用了你說的方法達成的. 等你的好消息....... < face="Verdana, Arial, Helvetica"> SE我們也常在用, 是一個很不錯的tool, 可惜只是個console mode程式 至於他是不是如你相像的把一個driver放在檔案裡, 再去call他 小弟不得而知. 不過不管是SE還是你要用到的需求 先試著把一個file放在自己的.exe resource or data區, 然後能正確的找到位置far jmp or far call 過去才是成功的第一步
Jeffrey_Chang
一般會員


發表:5
回覆:10
積分:3
註冊:2003-06-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-06-19 20:05:39 IP:210.202.xxx.xxx 未訂閱
真的呀, 你也常用 SE. 我現在就是在寫類似它, 但是是GUI的程式. 你說把 file 放到 resource or data區, 這怎麼做呢, 我沒做過也, 你可以教教我嗎? 謝謝.
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-06-19 21:03:48 IP:211.76.xxx.xxx 未訂閱
為了工作上的便利, 我是已經寫了一個有UI的tool來access PCI/CMOS/EC RAM..etc    不過小弟有幾個思考的方向, 不妨參考一下. 1. resouce的塞法,小弟還沒玩過, 不過站上有滿多人很在行的, 你可以另開一個標題來詢問之 ... 小弟有一個想法, 把.sys放在TImage, 再把他Load進來, 就是一個最簡單可以塞到resource的偏方 > > 因為小弟時間有限...雖然每天都在 >
Jeffrey_Chang
一般會員


發表:5
回覆:10
積分:3
註冊:2003-06-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-06-19 21:43:41 IP:210.68.xxx.xxx 未訂閱
你說的一點也沒錯, 所以我是個人使用的. 因為工作需要這種 Tool, 以及 SE 時常會造成系統當機, 所以順便練練功力. 你說的我大致明白了, 謝謝你的指導. 如有問題再請教於你. 我將再開闢另一個標題來詢問關於resouce的塞法. Thanks
samho
一般會員


發表:10
回覆:19
積分:5
註冊:2002-12-13

發送簡訊給我
#10 引用回覆 回覆 發表時間:2007-08-13 11:01:20 IP:219.87.xxx.xxx 訂閱
請問一下,
小弟目前也遇到想把自己寫的一隻小sys檔和exe檔合成一隻exe的問題,不知大大當初是如何解決的,
(sys就如同winio.sys一樣)
感激不進
harrypp
中階會員


發表:7
回覆:124
積分:61
註冊:2006-08-31

發送簡訊給我
#11 引用回覆 回覆 發表時間:2007-08-13 16:21:10 IP:210.68.xxx.xxx 訂閱
其實也沒什麼,講破了不值一文錢。
把sys當resource包裝進去,執行時複製到 \system32\Drivers 下面去並記得註冊,執行後全部砍掉。
編輯記錄
harrypp 重新編輯於 2007-08-13 17:00:45, 註解 無‧
harrypp 重新編輯於 2007-08-13 17:24:29, 註解 無‧
samho
一般會員


發表:10
回覆:19
積分:5
註冊:2002-12-13

發送簡訊給我
#12 引用回覆 回覆 發表時間:2007-08-13 17:54:35 IP:219.87.xxx.xxx 訂閱
再問一下
我在網路上找到的方法大多都是vc的解法,
BCB也可以用resource嗎,我怎都找不到,
因為我的ap大多都是BCB耶
bugmans
高階會員


發表:95
回覆:322
積分:188
註冊:2003-04-12

發送簡訊給我
#13 引用回覆 回覆 發表時間:2007-09-25 06:52:50 IP:125.225.xxx.xxx 未訂閱
就上一樓要問資源檔可以看http://delphi.ktop.com.tw/board.php?cid=31&fid=79&tid=57442
雖然是Delphi語法,重點在怎麼將rc檔轉成res資源檔和如何使用TResourceStream

但就討論標題來看,除了將驅動程式包成一個執行檔之外,應該還要能自動安裝此Driver
假如要自己純手工寫程式的可以看這篇,有提到你應該用什麼API
http://delphi.ktop.com.tw/board.php?cid=168&fid=917&tid=72881
或者直接使用http://nsis.sourceforge.net/InstDrv_plug-in
背後的技術細節可以看InstDrv.dll原始碼,其實就用到SetupDi開頭的API
用NSIS打包成自動安裝程式,設定要安裝的驅動程式,連程式都不用寫
系統時間:2024-11-24 10:43:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!