관리 메뉴

ㄴrㅎnㅂrㄹrㄱi

DeCompiler (디컴파일러) 본문

AUTOHOTKEY/유틸리티

DeCompiler (디컴파일러)

님투 2010. 3. 9. 04:23
반응형


exe2Ahk.exe 파일을 이용한 역컴파일 툴입니다.


;----------------------------------------------------------------------------
; MiniTool
;----------------------------------------------------------------------------
; Developed : Choi Ho Sung, nimto@naver.com
; Copyright : nimto (c)2005 All rights reserved.
;----------------------------------------------------------------------------
; Ver 0.1 2007-01-01
;----------------------------------------------------------------------------
; 배포처 : http://www.infoki.net
; 배포방식 : 실행파일 배포
;----------------------------------------------------------------------------

#SingleInstance force
#NoTrayIcon ; 프로그램이 트레이로 들어가지 않도록
#NoEnv ; 변수명을 해석할 때, 환경 변수를 무시한다
#InstallKeybdHook ; 무조건 키보드 훅을 유효하게 한다
#InstallMouseHook ; 무조건 마우스 훅을 유효하게 한다
#MaxHotkeysPerInterval
#HotkeyInterval
;#IfWinActive ; hot key를 특정의 윈도우의 액티브/ 존재시만 유효하게 설정
;#IfWinExist ; hot key를 특정의 윈도우의 액티브/ 존재시만 유효하게 설정
;DetectHiddenWindows, On ; 윈도우 탐색시에 비표시가 되어 있는 윈도우를 검출 대상으로 하는지를 설정한다
;SetTitleMatchMode, 2 ; 윈도우 관련 커멘드로의 대상 윈도우 검색 방법을 설정한다
;SetKeyDelay, 0 ; Send (이)나ControlSend 커멘드로의1 키 마다 삽입되는 간격을 변경
SetKeyDelay, 10, 10
;AutoTrim,Off
;Coordmode Mouse, Screen
#Persistent


;Gui, Add, Tab, x6 y0 w460 h370 , Tab1|Tab2
; Generated using SmartGUI Creator 4.0
;Gui, Show, x231 y169 h377 w477, New GUI Window
;Return

;---------------------------------------------------------------------------
; 기본 설정 부분
;---------------------------------------------------------------------------
ProgramName = ExE2Ahk DeCompiler
ProgramVer = 1.0
ProgramTitle = %ProgramName% ver.%ProgramVer%

Gosub,Readini

MyImageList := IL_Create()
IL_Add(MyImageList, "shell32.dll", 190)
IL_Add(MyImageList, "shell32.dll", 163)
IL_Add(MyImageList, "shell32.dll", 24)

Gui, Add, Tab, x0 y0 w500 h190
Gui +LastFound
SendMessage, 0x1303, 0, MyImageList, SysTabControl321 ; 0x1303 is TCM_SETIMAGELIST.

AddTab(1, "실행")
AddTab(2, "설정")
AddTab(3, "도움말")

Gui, Tab, 1
Gui, Add, Text, x20 y40 h20 , Exe 컴파일시 설정 암호
Gui, Add, Edit, x+7 y35 vdepasswd w200 h20 ,

Gui, Add, Button, x130 y75 h28 gExeRun, EXE 실행
Gui, Add, Button, x+15 h28 gAhkRun, AHK 실행
Gui, Add, Button, x+15 h28 gAhkEdit, AHK 편집

Gui, Add, Button, GDeCompilerRun x90 y140 w300 h30 , 역컴파일 파일 생성

Gui, Tab, 2

Gui, Add, Text, x20 y40 w70 h20 , EXE File :
Gui, Add, Edit, x+5 y35 w250 h20 vexefile, %exefile%
Gui, Add, Button, x+5 y35 w60 h20 gExeSeleteFile, 선택

Gui, Add, Text, x20 y70 w70 h20 , Exe2Ahk :
Gui, Add, Edit, x+5 y65 w250 h20 vahkfile, %ahkfile%
Gui, Add, Button, x+5 y65 w60 h20 gAhkSeleteFile, 선택

Gui, Add, Text, x20 y120 w70 h20 , 편집기 :
Gui, Add, Edit, x+5 y115 w250 h20 veditprog, %editprog%
Gui, Add, Button, x+5 y115 w60 h20 gEditSeleteFile, 선택

Gui, Tab, 3

help_text =
(
설정에서 편집기와, Exe2Ahk.exe 파일을 선택하세요 역컴파일러로 Exe 파일의 폴더에 Ahk 파일이 생성 됩니다.

또한 편집기를 지정하면 해당 편집기로 역컴파일한 Ahk 파일을 편집할 수있습니다.

컴파일시 암호가 지정되었다면 실행할때 암호를 필히 입력하세요


20081217 일 수요일에 님투 (최호성 제작)
Blog : http://nimto.tistory.com
Email : nimtos@gmail.com
)

Gui, Add, Edit, x0 y22 w500 h170 , %help_text%

; Generated using SmartGUI Creator 4.0
Gui, Show, xcenter ycenter h190 w500, %ProgramTitle%
Return

ExeRun:
Run, %exefile%
Return

AhkRun:
StringReplace, ahk_runfile, exefile, .exe, , All
Run, %ahk_runfile%
Return

AhkEdit:
StringReplace, ahk_editfile, exefile, .exe, , All
Run, %editprog% %ahk_editfile%.ahk
Return

ExeSeleteFile:
FileSelectFile, exe1, 3, %exefile%, , Program (*.exe)
if exe1 =
{
return
}
GuiControl,, exefile, %exe1%
gosub, RunSave
Return

AhkSeleteFile:
FileSelectFile, ahk1, 3, %ahkfile%, , Program (*.exe)
if ahk1 =
{
return
}
GuiControl,, ahkfile, %ahk1%
gosub, RunSave
Return

EditSeleteFile:
FileSelectFile, edit1, 3, %editprog%, , Program (*.exe)
if edit1 =
{
return
}
GuiControl,, editprog, %edit1%
gosub, RunSave
Return


DeCompilerRun:
Gosub, RunSave
Gosub, Readini
run, "%ahkfile%" %exefile% %depasswd%
Return

RunSave:
Gui,Submit, NoHide
gosub, Writeini
Return

Writeini:
Iniwrite,%exefile%, %A_Scriptdir%\DeCompiler.ini,Settings,exefile
Iniwrite,%ahkfile%, %A_Scriptdir%\DeCompiler.ini,Settings,ahkfile
Iniwrite,%editprog%, %A_Scriptdir%\DeCompiler.ini,Settings,editprog
Return

Readini:
IfNotExist,%A_Scriptdir%\DeCompiler.ini
{
exefile=
ahkfile=
editprog=
Gosub,Writeini
}
else=
{
iniRead,exefile, %A_Scriptdir%\DeCompiler.ini,Settings,exefile
iniRead,ahkfile, %A_Scriptdir%\DeCompiler.ini,Settings,ahkfile
iniRead,editprog, %A_Scriptdir%\DeCompiler.ini,Settings,editprog
}
Return

AddTab(IconNumber, TabName) ; Relies on caller having set the last found window for us.
{
VarSetCapacity(TCITEM, 100, 0)
InsertInteger(3, TCITEM, 0) ; Mask (3) comes from TCIF_TEXT(1) + TCIF_IMAGE(2).
InsertInteger(&TabName, TCITEM, 12) ; pszText
InsertInteger(IconNumber - 1, TCITEM, 20) ; iImage: -1 to convert to zero-based.
SendMessage, 0x1307, 999, &TCITEM, SysTabControl321 ; 0x1307 is TCM_INSERTITEM
}

InsertInteger(pInteger, ByRef pDest, pOffset = 0, pSize = 4)
{
Loop %pSize% ; Copy each byte in the integer into the structure as raw binary data.
DllCall("RtlFillMemory", "UInt", &pDest + pOffset + A_Index-1, "UInt", 1, "UChar", pInteger >> 8*(A_Index-1) & 0xFF)
}

GuiClose:
IL_Destroy(MyImageList) ; Required for image lists used by tab controls.
ExitApp


반응형
Comments