看板 Programming 關於我們 聯絡資訊
目前工作,有先用 C/C++ ,編譯出一個 Execute.exe 後, 以讀檔方式,去做一些相對應的動作, 整體而言,Execute.exe 就像是直譯器,舉個例子好了 --------- # filename : sample.s # author : xxxx MsgBox ( Hello ) ; % command here LButtonDown(10,20); LButtonUp(10,20) ; -------- 原本 Execute.exe 是被我定位成輔助工具,要執行該 script 時用 Execute.exe sample.s 後來 team 覺得弄得不錯,有意想要商業化 , ( 有沒有商業化的價值先跳過,這不在討論的重點裡 ) 小弟構思第一步,是將 execute.exe 變成編譯器, (前半段的語法分析... etc 那些就先全跳過了, 初估最後一步是最大瓶頸) 下 execute.exe sample.s 時,會將 sample.s 的動作包成 sample.exe, 這樣以後 release 就不必再有 execute.exe 存在。 但左思右想真不知道該怎麼下手, google 關鍵字下 "編譯器" "compiler" 也找不到我想要的東西, 懇請各位先進能給個起頭、資源、關鍵字, 小弟感激不盡。 -- 就算把新鮮的肝拿回去,還是一樣寫碼到禿頭,加班到天亮, 永遠當老闆的傀儡 你是不是想這麼做? 是的話你就拿回去~ 拿啊!! 九世宅男 : 下輩子不要再讓我幹工程師了 ~ < Kuso 星爺語錄 > -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.77.10 EdisonX:轉錄至看板 ASM 07/27 21:10
LPH66:我會比較喜歡設一個副檔名出來設關連 114.26.44.185 07/28 04:23
LPH66:畢竟要寫編譯器有很多瑣碎的事要做 114.26.44.185 07/28 04:25
LPH66:能夠保持直譯式會是最好的 114.26.44.185 07/28 04:26
LPH66:如果設關連有困難的話我可能就會直接使用 114.26.44.185 07/28 04:26
LPH66:原來的 execute.exe 了 114.26.44.185 07/28 04:26
azureblaze:不然就想辦法從外部把script硬包進exe 118.168.64.7 07/28 09:24
azureblaze:autohotkey好像是這種作法 118.168.64.7 07/28 09:24
EdisonX:先謝謝 LPH66 , 設關連沒什麼問題. 180.177.77.10 07/28 15:57
EdisonX:另請教 az~ , 我知道不少 script language 180.177.77.10 07/28 15:58
EdisonX:是如您的做法,autohotkey,autoit 都是, 180.177.77.10 07/28 15:58
EdisonX:但還真不知怎下手... 180.177.77.10 07/28 15:59
azureblaze:最簡單的方法就程式先宣告一大塊 118.168.64.7 07/28 18:19
azureblaze:static data,init成magic string 118.168.64.7 07/28 18:20
azureblaze:然後在exe搜尋這個string蓋過去 118.168.64.7 07/28 18:20
azureblaze:其他就要研究看看exe的結構了 118.168.64.7 07/28 18:21
EdisonX:所以最後會修改到完成的.exe 的 bin.code? 180.177.77.10 07/28 18:22
EdisonX:嗯嗯,了解,謝謝您的意見。 180.177.77.10 07/28 18:22
azureblaze:winapi有個叫UpdateResource()的東西 118.168.64.7 07/28 18:24
azureblaze:http://ppt.cc/eliu 或許可以試試看 118.168.64.7 07/28 18:25
EdisonX:太感謝了,這支 API 好鮮,有空摸摸先 :D 180.177.77.10 07/28 18:28
proach:我想的根azureblaze想的應該差不多 114.32.221.214 07/29 01:38
proach:如果你的程式內有很多string,可以在.exe 114.32.221.214 07/29 01:39
proach:內搜尋到這些字串。如果這些字串就是script 114.32.221.214 07/29 01:39
proach:應該有機會事後修改.exe內的default script 114.32.221.214 07/29 01:39
drm343:想到了用 7zip 裝成 exe 檔的作法XD 118.163.91.90 07/29 10:30
suhorng:我覺得應就是az的方法 118.166.61.226 07/31 01:14
suhorng:類似這script真正用compiler太不符成本了 118.166.61.226 07/31 01:14
suhorng:這類型 118.166.61.226 07/31 01:14
suhorng:話說說不定某些壓縮軟體有提供建立自解檔 118.166.61.226 07/31 01:16
suhorng:並且自動執行指定程式的功能... 118.166.61.226 07/31 01:16
kingstong:BIN.CODE應該是看不到,只會看見亂碼 140.134.60.122 07/31 12:26
suhorng:看得到 118.166.61.226 07/31 14:53
kingstong:怎麼樣才能看?敬請不吝賜教,非反串 140.134.224.47 07/31 15:41
suhorng:例如用HexEdit/UltraEdit/MadEdit編輯器 118.166.61.226 07/31 16:39
kingstong:感謝賜教125.224.211.248 07/31 19:18
EdisonX:對唷..的確 WinRar 有解壓縮後自動執行的 180.177.77.10 07/31 23:03
EdisonX:功能… 180.177.77.10 07/31 23:03
henry10423:有聽過反射嘛?Reflection 1.160.223.80 08/04 10:17
EdisonX:請問 Reflection 的意思是 ??? 180.177.73.182 08/04 15:52
coolcomm:reflection 不是 java 的東西嗎=.= 123.110.199.28 08/04 18:48
purpose:http://goo.gl/ve94Km Ahk2Exe 原始碼 124.8.141.48 08/04 21:32
purpose:是用 UpdateResource(h, RT_RCDATA, 沒錯 124.8.141.48 08/04 21:34
purpose:資源名稱固定都用 >AUTOHOTKEY SCRIPT< 124.8.141.48 08/04 21:34
EdisonX:這份 code 好屌, 謝謝 purpose :D 180.177.73.182 08/04 23:32