2014年9月4日 星期四

製作 MSI 檔案 (make msi file from exe)

一般我們編譯完程式  在windows 底下常見的就是 exe安裝檔
透過exe安裝檔我們就可以執行安裝 為何要轉換成 MSI呢?

目前kaga 所遇到 需要轉換成 MSI檔的原因就是 配合AD server 派送安裝
由於AD server 只能使用MSI檔進行派送安裝
所以勢必得轉換過去

> MSI檔案是主要與Windows Installer File (Microsoft Corporation)相關的雜項檔案。

Step1 : 事前準備

> 環境
這邊Kaga 十分建議 使用VM 的環境來建構MSI檔
由於 在製作MSI檔 有點類似 比對安裝前安裝後 整個系統檔案的差異
所以越乾淨的環境 製作的速度比較快 也比較好處理

*kaga 使用的是 VM windows 7 32bit


> 工具
WinINSTALL-LE (好像也有 PRO 版本 但這版本 已經足夠應付我的工作)
備份檔


Step2 :  掃描環境變數
***建議使用 Administrator 執行 這攸關你MSI檔權限問題~




執行winINSTALL 程式
點選 Windows Installer Packages 後 左上方會出現一個放大鏡圖示 點選它
Run Discover 開始掃描未執行exe安裝檔前 的環境


在 Arguments 可以帶參數 kaga使用目前都直接空白
詳細的參數設定 可以參考文末的PDF 說明檔

首先要建立專案的名稱 可以幫你產生資料夾

這邊是要你指定 它所產生暫存檔案要存放在哪個空間 
一般就直接選擇C 就可以了


選擇 要掃描的空間,可以選多個
看你的exe安裝檔 安裝後檔案會需要存取於那些空間

接下來 會出現 各種系統檔案與資料夾的列表
主要讓你 可以篩選需要掃描的檔案是否移除或者增加
這邊kaga 就沒特別截圖了 通常都直接下一步

掃描ing.......
PS:掃描的速度跟你的選取使用空間有關 檔案越多掃得越久 
      所以環境越單純越好 切記!
最後會跳出這個視窗 問你是否直接執行 exe安裝檔
這只是方便你直接操作 如果按取消再去執行安裝 也可以的


Step3 : 安裝exe檔案  ... 就執行你的EXE檔麻
*** 如果你的程式會需要跑服務類型 建議可以在安裝後重新開機一次 再繼續下面的步驟
       這樣可以存取到比較正確的 執行權限

Step4 : 再次掃描環境變數
             再次打開 winInstall  一樣點擊 放大鏡圖示 Run Discover

第二次運行 discover ,會出現不一樣的選單 第一個就是
你已經掃描過一次要進行第二次的差異比對
如果你選了第二個 則會當成第一次 掃描



   

Step5 : 修改 第一次產生的MSI檔
              通常我們 第一次產生的MSI檔 不建議直接使用
              因為其中會包含不少 跟我們安裝不相關的內容 是需要經過調整的
              ex: 剛好在掃描後 才打開skype 就會連 skype 的暫存檔都被認為有變更而被帶進來MSI檔


                                     
這次點擊資料夾圖示 選擇你建立專案資料夾內的 MSI檔
建議勾選Copy Package Source Files
不小心玩壞了 還可以再來一次


此時就會產生一個新的 MSI 專案

點擊專案 會出現 一堆可以設定的東西
這邊kaga 只簡單介紹幾個有用到的設定
因為可以調整的地方真的很多>< 就要看各自需求了
右上角的ARP 也就是這個安裝檔 出現在 控制台/新增移除 裡面的圖示
當然你也可以不勾選 也就不會顯示了

這個地方的設定有點類似 我們有些安裝完後會問user 
安裝是for user 還是這台電腦都可以使用
下方的 Offer to reset .... 指的是是否要求使用者安裝後重開機!
其他檢查重點
1. Files >  這邊包含整個MSI檔 包含的路徑與檔案 以及 移除檔案也有
                需要仔細查看 避免不小心 安裝後改變了 原本電腦的東西
2. Registry >  這邊也要檢查是否 它裡面新增的註冊檔 跟你的程式有關
3. Service >  如果需要新增服務的 這邊可能也要設定

Step6 : 產生MSI檔

其實 新的MSI專案 在上面這些動作 並還沒有產生MSI檔
此時已經設定完後 需要產生MSI檔

在專案名稱案又建 Compress 跳出視窗後按確定 完成!
後續只要在 
C:\Program Files\Scalable\WinINSTALL\Packages\testProgram\
就會看到 正確的 MSI 檔囉!
---------------------------------------------------------------------
以上步驟 即可將你的 exe安裝檔 轉換成 msi 來使用
建議後續還是多個平台安裝看看
如果遇到程式無法產生檔案 或者讀取不到其中某幾個程式
建議 將一些呼叫的路徑檢查是否為"絕對路徑"
另外就是執行的權限在重新檢視一下


winInstall 電子說明書 有包含 關於 dicover 的參數設定
https://cs.uwaterloo.ca/twiki/pub/CF/WindowsPackaging/GettingStartedWinstall.pdf




2014年8月28日 星期四

迷路的程式 Path with process~

最近被自己之前設計的程式搞瘋了
popen 在windows 底下似乎有點詭異

1. 採用相對路徑 .\test\sqlite3.exe
發現 當kaga把其他程式 一起打包成MSI檔 在其他環境 沒有辦法正確執行

2. 採用絕對路徑 C:\desktop\tests\qlite3.exe
好像可以了 結果....
當在其他環境 路徑中 出現空格... 就會fail

目前採用 雙引號 包起來
就正常哩~~~

在windows 底下 的路徑 還是盡量採用絕對路徑
也要注意到路徑可能的命名問題

由於這個程式 有的跑系統服務
有的跑在 user space
當彼此呼叫 有時候也滿多 麻煩的 > <

另外下一篇打算來
PO 一下製作MSI檔的流程吧~

See you next time~

2014年8月26日 星期二

HITCON 2014

這是 kaga 第一次參加 hitcon
以前常聽到 但覺得似乎離自己有點遠(不單單只是距離)

官網 : http://hitcon.org/2014/

打從工作後 開始對於資訊安全 hacker, 開始有了些了解與興趣
今天 剛好又是 hitcon 十周年
下定決心 給他衝個一次

聽說這票不好買 (有分商業場 跟 社群場 價差就... kaga 自費參加也只能選社群場 = =|||)
第一次買就乖乖守在電腦前搶票拉
門票搞定後 就是等待拉~

七月 一整個很忙碌
但不單純只是工作 忙著東奔西跑
出差去日本 回來 一個禮拜 又去日本玩 ><
說真的 出去玩 還真的比上班累阿 @@

特地請了兩天假 微出國去
同事都一直在猜我到底請假去哪玩
我感覺也很懶得解釋 就很簡單的說去參加活動研討會之類的
主題就....資訊安全 吧
我想應該也沒差太多吧 XD

第一天的早上 8:30~ 9:30 報到
坐捷運到 南港展覽館 原本都看好要搭什麼公車
後來有上FB 發現 原來有接駁車
不過很奇妙的是 這訊息當天早上才發的@@
有看有賺到~
直接載到會場一整個省時又省力阿


快九點進到會場 應該很OK才對
但其實並不然~
一走進會議廳 幾乎滿滿的 只好坐到超後面的 = =
再慢一點大概就坐地板了...
因此隔天 我硬是起了個大早 才搶到 前面兩排位置
test
很有質感的識別證!
Hitcon 2014 Start!



















 兩天的課程 真的有深有淺
 我記得第一天的第一堂 是個韓國team
 整場英文 我整個傻了...
 雖然大會有即時翻譯 但.....
 kaga的老兵arcs 不能聽阿 = = (後來研究了很久 原來下載    XiiaLive 就可以)
 只能看著投影片很努力地看他們在幹嘛~

 每個時段 會有三場不同的主題內容
 可以自由選擇
 但我幾乎都在R0

至於本次 kaga 所吸收到的重點
大概可以歸納這幾項吧
*android 手機 ADB繞過各種漏洞
*遠端桌面的後門
*APT 各種 fail
*破解悠遊卡新版與舊版難易度

其實這次去有不少 主題內容的真的不是那麼懂
但可以感覺到 如果有涉及相同領域的話 應該會收益滿多的

有人問kaga 都聽不懂 這樣幹嘛去 ?!
其實現場不只是聽聽演講而已
周邊也有不少活動 像是"算命攤"
雖然我去沒幾次 不過也滿多人會聚在那邊
不只是聊有關hacker議題
什麼雜七雜八都可以  可以認識很多人
也是滿特別的

在來就是會議廳主場內建聊天模式
會議廳裡會有兩個投影 一個是講師上課的簡報
另一個 就是 IRC 上大家聊天的內容
就這樣直白白的給他show在上面哩
可以在上面發現很多有趣的內容
可能是針對講師 或者 同時段其他廳的演講內容等等
也算是這個活動滿重要的一環喔!!!

打卡送冰淇淋~
這是點心~
 一整天的吃喝都幫你準備的很豐盛
早上有點心 下午也有點心
大概就中午的便當 要靠運氣看抽到什麼了
我兩次都沒拿到雞腿便當 這真的是Random
 > <!?


旁邊的工作人員 滿正的 > <!
桌遊觸控板遊戲







另外周邊還有 自拍大頭貼 各種裝扮 會產生一組QRcode 讓你下載
(後來機台下面貼了一張 請不要踹IP 這種場合真的是什麼都能玩阿XD)
以及桌遊的 觸控板遊戲 kaga 下去玩所以也不是很了解玩法
應該就有點像遊戲王血量歸0的輸~ 只是變化比較簡單一點~




本次大會另一個賣點 就是創新的桌遊!!! MIT的喔
遊戲的玩法結構 其實有點像七大奇蹟 搶資源分數類型!
BGG: http://www.boardgamegeek.com/boardgame/163963/league-hackers
可能之後一般市面上也會舖貨吧


第二天的ENDING~
看到台上滿滿的工作人員 原來這個活動背後
還是要有這麼多人協助與參與的~
大家辛苦了~ 

也期待明年的 HITCON 2015



2014年2月27日 星期四

目標

很久沒寫文章了
很像我離開這個圈子似的...

說實在的  最近 確實有一點這樣的感覺~

總覺得自己 一直在追求著什麼
原本只是霧霧的一團

現在慢慢散開後 一整個霧裡看花
迷茫了起來

公司裡每個人 來來去去
工作 需要負擔的 總一直來

我這個人 不怕忙不怕累

最怕就是 看不到岸
走在霧裡的感覺

讓我最近 失去了不少動力
只好在工作之餘 找找其他方向

所以 跑去買了本 unity3D的書 回來摸摸~
自己在家玩了一下 確實輕鬆 愉快很多~ 哈

最近一樣在 一堆封包中 打滾

有空 再把最近 封包的解析 重組 等等心得 再整理一下好了~