앱
|
2026. 7. 18. 23:28
서든어택 조준점 색상인식 발사
작성일: 2018-10-14
옛날 버전 오토잇, 오토핫키 소스
에궁.ahk
Complied : AutoHotKey
Extracted : Ryu
====================================================================================================================
#UseHook
#NoTrayIcon
#ErrorStdOut
#InstallKeybdHook
#singleinstance force
SetCapsLockState, Off
SetWinDelay,-1
SetKeyDelay,-1
SetMouseDelay,-1
SetBatchLines,-1
SetControlDelay,-1
SetDefaultMouseSpeed,0
GetOSVersion()
{
VarSetCapacity(v,148), NumPut(148,v)
DllCall("GetVersionEx", "uint", &v)
OSVer:=NumGet(v,4)NumGet(v,8)
OSName:= OSVer=61 ? "Windows 7"
:(OSVer=62 ? "Windows 8"
:(OSVer=60 ? "Windows Vista"
:(OSVer=52 ? "Windows XP 64-Bit Edition"
:(OSVer=51 ? "Windows XP"
:(OSVer=50 ? "Windows 2000"
:"Unknown")))))
return OSName
}
Xor(text)
{
String =
Loop, parse, text
{
char := Asc(A_LoopField)^Asc(":")^Asc("Œ")
String .= "`" . chr(Char)
}
Return, %String%
}
COM_Init()
{
Return DllCall("ole32\OleInitialize", "Uint", 0)
}
COM_Term()
{
Return DllCall("ole32\OleUninitialize")
}
COM_VTable(ppv, idx)
{
Return NumGet(NumGet(1*ppv)+4*idx)
}
COM_QueryInterface(ppv, IID = "")
{
If DllCall(NumGet(NumGet(1*ppv)+0), "Uint", ppv, "Uint", COM_GUID4String(IID,IID ? IID : IID=0 ? "{00000000-0000-0000-C000-000000000046}" : "{00020400-0000-0000-C000-000000000046}"), "UintP", ppv)=0
Return ppv
}
COM_AddRef(ppv)
{
Return DllCall(NumGet(NumGet(1*ppv)+4), "Uint", ppv)
}
COM_Release(ppv)
{
Return DllCall(NumGet(NumGet(1*ppv)+8), "Uint", ppv)
}
COM_QueryService(ppv, SID, IID = "")
{
DllCall(NumGet(NumGet(1*ppv)+4*0), "Uint", ppv, "Uint", COM_GUID4String(IID_IServiceProvider,"{6D5140C1-7436-11CE-8034-00AA006009FA}"), "UintP", psp)
DllCall(NumGet(NumGet(1*psp)+4*3), "Uint", psp, "Uint", COM_GUID4String(SID,SID), "Uint", IID ? COM_GUID4String(IID,IID) : &SID, "UintP", ppv:=0)
DllCall(NumGet(NumGet(1*psp)+4*2), "Uint", psp)
Return ppv
}
COM_FindConnectionPoint(pdp, DIID)
{
DllCall(NumGet(NumGet(1*pdp)+ 0), "Uint", pdp, "Uint", COM_GUID4String(IID_IConnectionPointContainer, "{B196B284-BAB4-101A-B69C-00AA00341D07}"), "UintP", pcc)
DllCall(NumGet(NumGet(1*pcc)+16), "Uint", pcc, "Uint", COM_GUID4String(DIID,DIID), "UintP", pcp)
DllCall(NumGet(NumGet(1*pcc)+ 8), "Uint", pcc)
Return pcp
}
COM_GetConnectionInterface(pcp)
{
VarSetCapacity(DIID, 16, 0)
DllCall(NumGet(NumGet(1*pcp)+12), "Uint", pcp, "Uint", &DIID)
Return COM_String4GUID(&DIID)
}
COM_Advise(pcp, psink)
{
DllCall(NumGet(NumGet(1*pcp)+20), "Uint", pcp, "Uint", psink, "UintP", nCookie)
Return nCookie
}
COM_Unadvise(pcp, nCookie)
{
Return DllCall(NumGet(NumGet(1*pcp)+24), "Uint", pcp, "Uint", nCookie)
}
COM_Enumerate(penum, ByRef Result, ByRef vt = "")
{
VarSetCapacity(varResult,16,0)
If (0 = hr:=DllCall(NumGet(NumGet(1*penum)+12), "Uint", penum, "Uint", 1, "Uint", &varResult, "UintP", 0))
Result:=(vt:=NumGet(varResult,0,"Ushort"))=9||vt=13 ? NumGet(varResult,8):vt=8||vt<0x1000&&COM_VariantChangeType(&varResult,&varResult)=0 ? COM_Ansi4Unicode(NumGet(varResult,8)) . COM_VariantClear(&varResult):NumGet(varResult,8)
Return hr
}
COM_Invoke(pdsp,name="",prm0="vT_NoNe",prm1="vT_NoNe",prm2="vT_NoNe",prm3="vT_NoNe",prm4="vT_NoNe",prm5="vT_NoNe",prm6="vT_NoNe",prm7="vT_NoNe",prm8="vT_NoNe",prm9="vT_NoNe")
{
If name=
Return COM_Release(pdsp)
If name contains .
{
SubStr(name,1,1)!="." ? name.=".":name:=SubStr(name,2) . ".",COM_AddRef(pdsp)
Loop, Parse, name, .
{
If A_Index=1
{
name := A_LoopField
Continue
}
Else If name not contains [,(
prmn := ""
Else If InStr("])",SubStr(name,0))
Loop, Parse, name, [(,'")]
If A_Index=1
name := A_LoopField
Else prmn := A_LoopField
Else
{
name .= "." . A_LoopField
Continue
}
If A_LoopField!=
pdsp:= COM_Invoke(pdsp,name,prmn!="" ? prmn:"vT_NoNe")+COM_Release(pdsp)*0,name:=A_LoopField
Else Return prmn!="" ? COM_Invoke(pdsp,name,prmn,prm0,prm1,prm2,prm3,prm4,prm5,prm6,prm7,prm8):COM_Invoke(pdsp,name,prm0,prm1,prm2,prm3,prm4,prm5,prm6,prm7,prm8,prm9),COM_Release(pdsp)
}
}
sParams := "0123456789"
Loop, Parse, sParams
If (prm%A_LoopField% == "vT_NoNe")
{
sParams := SubStr(sParams,1,A_Index-1)
Break
}
VarSetCapacity(varg,16*nParams:=StrLen(sParams),0), VarSetCapacity(DispParams,16,0), VarSetCapacity(varResult,32,0), VarSetCapacity(ExcepInfo,32,0)
Loop, Parse, sParams
If prm%A_LoopField% is not integer
NumPut(COM_SysString(prm%A_LoopField%,prm%A_LoopField%),NumPut(8,varg,(nParams-A_Index)*16),4)
Else NumPut(SubStr(prm%A_LoopField%,1,1)="+" ? 9:prm%A_LoopField%=="-0" ? (prm%A_LoopField%:=0x80020004)*0+10:3,NumPut(prm%A_LoopField%,varg,(nParams-A_Index)*16+8),-12,"Ushort")
If nParams
NumPut(nParams,NumPut(&varg,DispParams),4)
If (nvk := SubStr(name,0)="=" ? 12:3)=12
name := SubStr(name,1,-1),NumPut(1,NumPut(NumPut(-3,varResult,4)-4,DispParams,4),4)
Global COM_HR, COM_LR:=""
If (COM_HR:=DllCall(NumGet(NumGet(1*pdsp)+20),"Uint",pdsp,"Uint",&varResult+16,"UintP",COM_SysString(wname,name),"Uint",1,"Uint",1024,"intP",dispID,"Uint"))=0&&(COM_HR:=DllCall(NumGet(NumGet(1*pdsp)+24),"Uint",pdsp,"int",dispID,"Uint",&varResult+16,"Uint",1024,"Ushort",nvk,"Uint",&DispParams,"Uint",&varResult,"Uint",&ExcepInfo,"Uint",0,"Uint"))!=0&&nParams&&nvk!=12&&(COM_LR:=DllCall(NumGet(NumGet(1*pdsp)+24),"Uint",pdsp,"int",dispID,"Uint",&varResult+16,"Uint",1024,"Ushort",12,"Uint",NumPut(1,NumPut(NumPut(-3,varResult,4)-4,DispParams,4),4)-16,"Uint",0,"Uint",0,"Uint",0,"Uint"))=0
COM_HR:=0
Global COM_VT := NumGet(varResult,0,"Ushort")
Return COM_HR=0 ? COM_VT>1 ? COM_VT=9||COM_VT=13 ? NumGet(varResult,8):COM_VT=8||COM_VT<0x1000&&COM_VariantChangeType(&varResult,&varResult)=0 ? COM_Ansi4Unicode(NumGet(varResult,8)) . COM_VariantClear(&varResult):NumGet(varResult,8):"":COM_Error(COM_HR,COM_LR,&ExcepInfo,name)
}
COM_Invoke_(pdsp,name,typ0="",prm0="",typ1="",prm1="",typ2="",prm2="",typ3="",prm3="",typ4="",prm4="",typ5="",prm5="",typ6="",prm6="",typ7="",prm7="",typ8="",prm8="",typ9="",prm9="")
{
If name contains .
{
SubStr(name,1,1)!="." ? name.=".":name:=SubStr(name,2) . ".", COM_AddRef(pdsp)
Loop, Parse, name, .
{
If A_Index=1
{
name := A_LoopField
Continue
}
Else If name not contains [,(
prmn := ""
Else If InStr("])",SubStr(name,0))
Loop, Parse, name, [(,'")]
If A_Index=1
name := A_LoopField
Else prmn := A_LoopField
Else
{
name .= "." . A_LoopField
Continue
}
If A_LoopField!=
pdsp:= COM_Invoke(pdsp,name,prmn!="" ? prmn:"vT_NoNe")+COM_Release(pdsp)*0,name:=A_LoopField
Else Return COM_Invoke_(pdsp,name,typ0,prm0,typ1,prm1,typ2,prm2,typ3,prm3,typ4,prm4,typ5,prm5,typ6,prm6,typ7,prm7,typ8,prm8,typ9,prm9),COM_Release(pdsp)
}
}
sParams := "0123456789"
Loop, Parse, sParams
If (typ%A_LoopField% = "")
{
sParams := SubStr(sParams,1,A_Index-1)
Break
}
VarSetCapacity(varg,16*nParams:=StrLen(sParams),0), VarSetCapacity(DispParams,16,0), VarSetCapacity(varResult,32,0), VarSetCapacity(ExcepInfo,32,0)
Loop, Parse, sParams
NumPut(typ%A_LoopField%,varg,(nParams-A_Index)*16,"Ushort"),typ%A_LoopField%&0x4000=0 ? NumPut(typ%A_LoopField%=8 ? COM_SysString(prm%A_LoopField%,prm%A_LoopField%):prm%A_LoopField%,varg,(nParams-A_Index)*16+8,typ%A_LoopField%=5 ? "double":"int64"):(VarSetCapacity(_ref_%A_LoopField%,8,0),NumPut(&_ref_%A_LoopField%,varg,(nParams-A_Index)*16+8),NumPut((prmx:=prm%A_LoopField%)&&typ%A_LoopField%=0x4008 ? COM_SysAllocString(%prmx%):%prmx%,_ref_%A_LoopField%,0,typ%A_LoopField%=0x4005 ? "double":"int64"))
If nParams
NumPut(nParams,NumPut(&varg,DispParams),4)
If (nvk := SubStr(name,0)="=" ? 12:3)=12
name := SubStr(name,1,-1),NumPut(1,NumPut(NumPut(-3,varResult,4)-4,DispParams,4),4)
Global COM_HR, COM_LR:=""
If (COM_HR:=DllCall(NumGet(NumGet(1*pdsp)+20),"Uint",pdsp,"Uint",&varResult+16,"UintP",COM_SysString(wname,name),"Uint",1,"Uint",1024,"intP",dispID,"Uint"))=0&&(COM_HR:=DllCall(NumGet(NumGet(1*pdsp)+24),"Uint",pdsp,"int",dispID,"Uint",&varResult+16,"Uint",1024,"Ushort",nvk,"Uint",&DispParams,"Uint",&varResult,"Uint",&ExcepInfo,"Uint",0,"Uint"))!=0&&nParams&&nvk!=12&&(COM_LR:=DllCall(NumGet(NumGet(1*pdsp)+24),"Uint",pdsp,"int",dispID,"Uint",&varResult+16,"Uint",1024,"Ushort",12,"Uint",NumPut(1,NumPut(NumPut(-3,varResult,4)-4,DispParams,4),4)-16,"Uint",0,"Uint",0,"Uint",0,"Uint"))=0
COM_HR:=0
Loop, Parse, sParams
typ%A_LoopField%&0x4000 ? (prmx:=prm%A_LoopField%,%prmx%:=typ%A_LoopField%=0x4008 ? COM_Ansi4Unicode(prmx:=NumGet(_ref_%A_LoopField%)) . COM_SysFreeString(prmx):NumGet(_ref_%A_LoopField%,0,typ%A_LoopField%=0x4005 ? "double":"int64")):""
Global COM_VT := NumGet(varResult,0,"Ushort")
Return COM_HR=0 ? COM_VT>1 ? COM_VT=9||COM_VT=13 ? NumGet(varResult,8):COM_VT=8||COM_VT<0x1000&&COM_VariantChangeType(&varResult,&varResult)=0 ? COM_Ansi4Unicode(NumGet(varResult,8)) . COM_VariantClear(&varResult):NumGet(varResult,8):"":COM_Error(COM_HR,COM_LR,&ExcepInfo,name)
}
COM_DispInterface(this, prm1="", prm2="", prm3="", prm4="", prm5="", prm6="", prm7="", prm8="")
{
Critical
If A_EventInfo = 6
hr:=DllCall(NumGet(NumGet(0+p:=NumGet(this+8))+28),"Uint",p,"Uint",prm1,"UintP",pname,"Uint",1,"UintP",0), hr==0 ? (VarSetCapacity(sfn,63),DllCall("user32\wsprintfA","str",sfn,"str","%s%S","Uint",this+40,"Uint",pname,"Cdecl"),COM_SysFreeString(pname),%sfn%(prm5,this,prm6)):""
Else If A_EventInfo = 5
hr:=DllCall(NumGet(NumGet(0+p:=NumGet(this+8))+40),"Uint",p,"Uint",prm2,"Uint",prm3,"Uint",prm5)
Else If A_EventInfo = 4
NumPut(0*hr:=0x80004001,prm3+0)
Else If A_EventInfo = 3
NumPut(0,prm1+0)
Else If A_EventInfo = 2
NumPut(hr:=NumGet(this+4)-1,this+4)
Else If A_EventInfo = 1
NumPut(hr:=NumGet(this+4)+1,this+4)
Else If A_EventInfo = 0
COM_IsEqualGUID(this+24,prm1)||InStr("{00020400-0000-0000-C000-000000000046}{00000000-0000-0000-C000-000000000046}",COM_String4GUID(prm1)) ? NumPut(NumPut(NumGet(this+4)+1,this+4)-8,prm2+0):NumPut(0*hr:=0x80004002,prm2+0)
Return hr
}
COM_DispGetParam(pDispParams, Position = 0, vt = 8)
{
VarSetCapacity(varResult,16,0)
DllCall("oleaut32\DispGetParam", "Uint", pDispParams, "Uint", Position, "Ushort", vt, "Uint", &varResult, "UintP", nArgErr)
Return NumGet(varResult,0,"Ushort")=8 ? COM_Ansi4Unicode(NumGet(varResult,8)) . COM_VariantClear(&varResult):NumGet(varResult,8)
}
COM_DispSetParam(val, pDispParams, Position = 0, vt = 8)
{
Return NumPut(vt=8 ? COM_SysAllocString(val):val,NumGet(NumGet(pDispParams+0)+(NumGet(pDispParams+8)-Position)*16-8),0,vt=11||vt=2 ? "short":"int")
}
COM_Error(hr = "", lr = "", pei = "", name = "")
{
Static bDebug:=1
If Not pei
{
bDebug:=hr
Global COM_HR, COM_LR
Return COM_HR&&COM_LR ? COM_LR<<32|COM_HR:COM_HR
}
Else If !bDebug
Return
hr ? (VarSetCapacity(sError,1023),VarSetCapacity(nError,10),DllCall("kernel32\FormatMessageA","Uint",0x1000,"Uint",0,"Uint",hr<>0x80020009 ? hr : (bExcep:=1)*(hr:=NumGet(pei+28)) ? hr : hr:=NumGet(pei+0,0,"Ushort")+0x80040200,"Uint",0,"str",sError,"Uint",1024,"Uint",0),DllCall("user32\wsprintfA","str",nError,"str","0x%08X","Uint",hr,"Cdecl")) : sError:="The COM Object may not be a valid Dispatch Object!`n`tFirst ensure that COM Library has been initialized through COM_Init().`n", lr ? (VarSetCapacity(sError2,1023),VarSetCapacity(nError2,10),DllCall("kernel32\FormatMessageA","Uint",0x1000,"Uint",0,"Uint",lr,"Uint",0,"str",sError2,"Uint",1024,"Uint",0),DllCall("user32\wsprintfA","str",nError2,"str","0x%08X","Uint",lr,"Cdecl")) : ""
}
COM_CreateIDispatch()
{
Static IDispatch
If Not VarSetCapacity(IDispatch)
{
VarSetCapacity(IDispatch,28,0), nParams=3112469
Loop, Parse, nParams
NumPut(RegisterCallback("COM_DispInterface","",A_LoopField,A_Index-1),IDispatch,4*(A_Index-1))
}
Return &IDispatch
}
COM_GetDefaultInterface(pdisp)
{
DllCall(NumGet(NumGet(1*pdisp) +12), "Uint", pdisp , "UintP", ctinf)
If ctinf
{
DllCall(NumGet(NumGet(1*pdisp)+16), "Uint", pdisp, "Uint" , 0, "Uint", 1024, "UintP", ptinf)
DllCall(NumGet(NumGet(1*ptinf)+12), "Uint", ptinf, "UintP", pattr)
DllCall(NumGet(NumGet(1*pdisp)+ 0), "Uint", pdisp, "Uint" , pattr, "UintP", ppv)
DllCall(NumGet(NumGet(1*ptinf)+76), "Uint", ptinf, "Uint" , pattr)
DllCall(NumGet(NumGet(1*ptinf)+ 8), "Uint", ptinf)
If ppv
DllCall(NumGet(NumGet(1*pdisp)+ 8), "Uint", pdisp), pdisp := ppv
}
Return pdisp
}
COM_GetDefaultEvents(pdisp)
{
DllCall(NumGet(NumGet(1*pdisp)+16), "Uint", pdisp, "Uint" , 0, "Uint", 1024, "UintP", ptinf)
DllCall(NumGet(NumGet(1*ptinf)+12), "Uint", ptinf, "UintP", pattr)
VarSetCapacity(IID,16), DllCall("RtlMoveMemory", "Uint", &IID, "Uint", pattr, "Uint", 16)
DllCall(NumGet(NumGet(1*ptinf)+76), "Uint", ptinf, "Uint" , pattr)
DllCall(NumGet(NumGet(1*ptinf)+72), "Uint", ptinf, "UintP", ptlib, "UintP", idx)
DllCall(NumGet(NumGet(1*ptinf)+ 8), "Uint", ptinf)
Loop, % DllCall(NumGet(NumGet(1*ptlib)+12), "Uint", ptlib)
{
DllCall(NumGet(NumGet(1*ptlib)+20), "Uint", ptlib, "Uint", A_Index-1, "UintP", TKind)
If TKind <> 5
Continue
DllCall(NumGet(NumGet(1*ptlib)+16), "Uint", ptlib, "Uint", A_Index-1, "UintP", ptinf)
DllCall(NumGet(NumGet(1*ptinf)+12), "Uint", ptinf, "UintP", pattr)
nCount:=NumGet(pattr+48,0,"Ushort")
DllCall(NumGet(NumGet(1*ptinf)+76), "Uint", ptinf, "Uint" , pattr)
Loop, % nCount
{
DllCall(NumGet(NumGet(1*ptinf)+36), "Uint", ptinf, "Uint", A_Index-1, "UintP", nFlags)
If !(nFlags & 1)
Continue
DllCall(NumGet(NumGet(1*ptinf)+32), "Uint", ptinf, "Uint", A_Index-1, "UintP", hRefType)
DllCall(NumGet(NumGet(1*ptinf)+56), "Uint", ptinf, "Uint", hRefType , "UintP", prinf)
DllCall(NumGet(NumGet(1*prinf)+12), "Uint", prinf, "UintP", pattr)
nFlags & 2 ? DIID:=COM_String4GUID(pattr) : bFind:=COM_IsEqualGUID(pattr,&IID)
DllCall(NumGet(NumGet(1*prinf)+76), "Uint", prinf, "Uint" , pattr)
DllCall(NumGet(NumGet(1*prinf)+ 8), "Uint", prinf)
}
DllCall(NumGet(NumGet(1*ptinf)+ 8), "Uint", ptinf)
If bFind
Break
}
DllCall(NumGet(NumGet(1*ptlib)+ 8), "Uint", ptlib)
Return bFind ? DIID : "{00000000-0000-0000-0000-000000000000}"
}
COM_GetGuidOfName(pdisp, Name)
{
DllCall(NumGet(NumGet(1*pdisp)+16), "Uint", pdisp, "Uint", 0, "Uint", 1024, "UintP", ptinf)
DllCall(NumGet(NumGet(1*ptinf)+72), "Uint", ptinf, "UintP", ptlib, "UintP", idx)
DllCall(NumGet(NumGet(1*ptinf)+ 8), "Uint", ptinf), ptinf:=0
DllCall(NumGet(NumGet(1*ptlib)+44), "Uint", ptlib, "Uint", COM_SysString(Name,Name), "Uint", 0, "UintP", ptinf, "UintP", memID, "UshortP", 1)
DllCall(NumGet(NumGet(1*ptlib)+ 8), "Uint", ptlib)
DllCall(NumGet(NumGet(1*ptinf)+12), "Uint", ptinf, "UintP", pattr)
GUID := COM_String4GUID(pattr)
DllCall(NumGet(NumGet(1*ptinf)+76), "Uint", ptinf, "Uint" , pattr)
DllCall(NumGet(NumGet(1*ptinf)+ 8), "Uint", ptinf)
Return GUID
}
COM_GetTypeInfoOfGuid(pdisp, GUID)
{
DllCall(NumGet(NumGet(1*pdisp)+16), "Uint", pdisp, "Uint", 0, "Uint", 1024, "UintP", ptinf)
DllCall(NumGet(NumGet(1*ptinf)+72), "Uint", ptinf, "UintP", ptlib, "UintP", idx)
DllCall(NumGet(NumGet(1*ptinf)+ 8), "Uint", ptinf), ptinf := 0
DllCall(NumGet(NumGet(1*ptlib)+24), "Uint", ptlib, "Uint", COM_GUID4String(GUID,GUID), "UintP", ptinf)
DllCall(NumGet(NumGet(1*ptlib)+ 8), "Uint", ptlib)
Return ptinf
}
COM_ConnectObject(psource, prefix = "", DIID = "")
{
If Not DIID
0+(pconn:=COM_FindConnectionPoint(psource,"{00020400-0000-0000-C000-000000000046}")) ? (DIID:=COM_GetConnectionInterface(pconn))="{00020400-0000-0000-C000-000000000046}" ? DIID:=COM_GetDefaultEvents(psource) : "" : pconn:=COM_FindConnectionPoint(psource,DIID:=COM_GetDefaultEvents(psource))
Else pconn:=COM_FindConnectionPoint(psource,SubStr(DIID,1,1)="{" ? DIID : DIID:=COM_GetGuidOfName(psource,DIID))
If !pconn || !ptinf:=COM_GetTypeInfoOfGuid(psource,DIID)
{
Return
}
psink:=COM_CoTaskMemAlloc(40+StrLen(prefix)+1), NumPut(1,NumPut(COM_CreateIDispatch(),psink+0)), NumPut(psource,NumPut(ptinf,psink+8))
DllCall("RtlMoveMemory", "Uint", psink+24, "Uint", COM_GUID4String(DIID,DIID), "Uint", 16)
DllCall("RtlMoveMemory", "Uint", psink+40, "Uint", &prefix, "Uint", StrLen(prefix)+1)
NumPut(COM_Advise(pconn,psink),NumPut(pconn,psink+16))
Return psink
}
COM_DisconnectObject(psink)
{
Return COM_Unadvise(NumGet(psink+16),NumGet(psink+20))=0 ? (0,COM_Release(NumGet(psink+16)),COM_Release(NumGet(psink+8)),COM_CoTaskMemFree(psink)) : 1
}
COM_CreateObject(CLSID, IID = "", CLSCTX = 5)
{
DllCall("ole32\CoCreateInstance", "Uint", SubStr(CLSID,1,1)="{" ? COM_GUID4String(CLSID,CLSID) : COM_CLSID4ProgID(CLSID,CLSID), "Uint", 0, "Uint", CLSCTX, "Uint", COM_GUID4String(IID,IID ? IID : IID=0 ? "{00000000-0000-0000-C000-000000000046}" : "{00020400-0000-0000-C000-000000000046}"), "UintP", ppv)
Return ppv
}
COM_ActiveXObject(ProgID)
{
DllCall("ole32\CoCreateInstance", "Uint", SubStr(ProgID,1,1)="{" ? COM_GUID4String(ProgID,ProgID) : COM_CLSID4ProgID(ProgID,ProgID), "Uint", 0, "Uint", 5, "Uint", COM_GUID4String(IID_IDispatch,"{00020400-0000-0000-C000-000000000046}"), "UintP", pdisp)
Return COM_GetDefaultInterface(pdisp)
}
COM_GetObject(Moniker)
{
DllCall("ole32\CoGetObject", "Uint", COM_SysString(Moniker,Moniker), "Uint", 0, "Uint", COM_GUID4String(IID_IDispatch,"{00020400-0000-0000-C000-000000000046}"), "UintP", pdisp)
Return COM_GetDefaultInterface(pdisp)
}
COM_GetActiveObject(ProgID)
{
DllCall("oleaut32\GetActiveObject", "Uint", SubStr(ProgID,1,1)="{" ? COM_GUID4String(ProgID,ProgID) : COM_CLSID4ProgID(ProgID,ProgID), "Uint", 0, "UintP", punk)
DllCall(NumGet(NumGet(1*punk)+0), "Uint", punk, "Uint", COM_GUID4String(IID_IDispatch,"{00020400-0000-0000-C000-000000000046}"), "UintP", pdisp)
DllCall(NumGet(NumGet(1*punk)+8), "Uint", punk)
Return COM_GetDefaultInterface(pdisp)
}
COM_CLSID4ProgID(ByRef CLSID, ProgID)
{
VarSetCapacity(CLSID, 16)
DllCall("ole32\CLSIDFromProgID", "Uint", COM_SysString(ProgID,ProgID), "Uint", &CLSID)
Return &CLSID
}
COM_GUID4String(ByRef CLSID, String)
{
VarSetCapacity(CLSID, 16)
DllCall("ole32\CLSIDFromString", "Uint", COM_SysString(String,String), "Uint", &CLSID)
Return &CLSID
}
COM_ProgID4CLSID(pCLSID)
{
DllCall("ole32\ProgIDFromCLSID", "Uint", pCLSID, "UintP", pProgID)
Return COM_Ansi4Unicode(pProgID) . COM_CoTaskMemFree(pProgID)
}
COM_String4GUID(pGUID)
{
VarSetCapacity(String, 38 * 2 + 1)
DllCall("ole32\StringFromGUID2", "Uint", pGUID, "Uint", &String, "int", 39)
Return COM_Ansi4Unicode(&String, 38)
}
COM_IsEqualGUID(pGUID1, pGUID2)
{
Return DllCall("ole32\IsEqualGUID", "Uint", pGUID1, "Uint", pGUID2)
}
COM_CoCreateGuid()
{
VarSetCapacity(GUID, 16, 0)
DllCall("ole32\CoCreateGuid", "Uint", &GUID)
Return COM_String4GUID(&GUID)
}
COM_CoTaskMemAlloc(cb)
{
Return DllCall("ole32\CoTaskMemAlloc", "Uint", cb)
}
COM_CoTaskMemFree(pv)
{
DllCall("ole32\CoTaskMemFree", "Uint", pv)
}
COM_CoInitialize()
{
Return DllCall("ole32\CoInitialize", "Uint", 0)
}
COM_CoUninitialize()
{
DllCall("ole32\CoUninitialize")
}
COM_SysAllocString(astr)
{
Return DllCall("oleaut32\SysAllocString", "Uint", COM_SysString(astr,astr))
}
COM_SysFreeString(bstr)
{
DllCall("oleaut32\SysFreeString", "Uint", bstr)
}
COM_SysStringLen(bstr)
{
Return DllCall("oleaut32\SysStringLen", "Uint", bstr)
}
COM_SafeArrayDestroy(psar)
{
Return DllCall("oleaut32\SafeArrayDestroy", "Uint", psar)
}
COM_VariantClear(pvar)
{
DllCall("oleaut32\VariantClear", "Uint", pvar)
}
COM_VariantChangeType(pvarDst, pvarSrc, vt = 8)
{
Return DllCall("oleaut32\VariantChangeTypeEx", "Uint", pvarDst, "Uint", pvarSrc, "Uint", 1024, "Ushort", 0, "Ushort", vt)
}
COM_SysString(ByRef wString, sString)
{
VarSetCapacity(wString,3+2*nLen:=1+StrLen(sString))
Return NumPut(DllCall("kernel32\MultiByteToWideChar","Uint",0,"Uint",0,"Uint",&sString,"int",nLen,"Uint",&wString+4,"int",nLen,"Uint")*2-2,wString)
}
COM_AccInit()
{
COM_Init()
If Not DllCall("GetModuleHandle", "str", "oleacc")
Return DllCall("LoadLibrary", "str", "oleacc")
}
COM_AccTerm()
{
COM_Term()
If h:= DllCall("GetModuleHandle", "str", "oleacc")
Return DllCall("FreeLibrary", "Uint", h)
}
COM_AccessibleChildren(pacc, cChildren, ByRef varChildren)
{
VarSetCapacity(varChildren,cChildren*16,0)
If DllCall("oleacc\AccessibleChildren", "Uint", pacc, "Uint", 0, "Uint", cChildren+0, "Uint", &varChildren, "UintP", cChildren:=0)=0
Return cChildren
}
COM_AccessibleObjectFromEvent(hWnd, idObject, idChild, ByRef _idChild_="")
{
VarSetCapacity(varChild,16,0)
If DllCall("oleacc\AccessibleObjectFromEvent", "Uint", hWnd, "Uint", idObject, "Uint", idChild, "UintP", pacc, "Uint", &varChild)=0
Return pacc, _idChild_:=NumGet(varChild,8)
}
COM_AccessibleObjectFromPoint(x, y, ByRef _idChild_="")
{
VarSetCapacity(varChild,16,0)
If DllCall("oleacc\AccessibleObjectFromPoint", "int", x, "int", y, "UintP", pacc, "Uint", &varChild)=0
Return pacc, _idChild_:=NumGet(varChild,8)
}
COM_AccessibleObjectFromWindow(hWnd, idObject=-4, IID = "")
{
If DllCall("oleacc\AccessibleObjectFromWindow", "Uint", hWnd, "Uint", idObject, "Uint", COM_GUID4String(IID, IID ? IID : idObject&0xFFFFFFFF==0xFFFFFFF0 ? "{00020400-0000-0000-C000-000000000046}":"{618736E0-3C3D-11CF-810C-00AA00389B71}"), "UintP", pacc)=0
Return pacc
}
COM_WindowFromAccessibleObject(pacc)
{
If DllCall("oleacc\WindowFromAccessibleObject", "Uint", pacc, "UintP", hWnd)=0
Return hWnd
}
COM_GetRoleText(nRole)
{
nSize:= DllCall("oleacc\GetRoleTextA", "Uint", nRole, "Uint", 0, "Uint", 0)
VarSetCapacity(sRole,nSize)
If DllCall("oleacc\GetRoleTextA", "Uint", nRole, "str", sRole, "Uint", nSize+1)
Return sRole
}
COM_GetStateText(nState)
{
nSize:= DllCall("oleacc\GetStateTextA", "Uint", nState, "Uint", 0, "Uint", 0)
VarSetCapacity(sState,nSize)
If DllCall("oleacc\GetStateTextA", "Uint", nState, "str", sState, "Uint", nSize+1)
Return sState
}
COM_AtlAxWinInit(Version = "")
{
COM_Init()
If Not DllCall("GetModuleHandle", "str", "atl" . Version)
DllCall("LoadLibrary", "str", "atl" . Version)
Return DllCall("atl" . Version . "\AtlAxWinInit")
}
COM_AtlAxWinTerm(Version = "")
{
COM_Term()
If h:= DllCall("GetModuleHandle", "str", "atl" . Version)
Return DllCall("FreeLibrary", "Uint", h)
}
COM_AtlAxAttachControl(pdsp, hWnd, Version = "")
{
Return DllCall("atl" . Version . "\AtlAxAttachControl", "Uint", punk:=COM_QueryInterface(pdsp,0), "Uint", hWnd, "Uint", 0), COM_Release(punk)
}
COM_AtlAxCreateControl(hWnd, Name, Version = "")
{
If DllCall("atl" . Version . "\AtlAxCreateControl", "Uint", COM_SysString(Name,Name), "Uint", hWnd, "Uint", 0, "Uint", 0)=0
Return COM_AtlAxGetControl(hWnd, Version)
}
COM_AtlAxGetControl(hWnd, Version = "")
{
If DllCall("atl" . Version . "\AtlAxGetControl", "Uint", hWnd, "UintP", punk)=0
pdsp:=COM_QueryInterface(punk), COM_Release(punk)
Return pdsp
}
COM_AtlAxGetHost(hWnd, Version = "")
{
If DllCall("atl" . Version . "\AtlAxGetHost", "Uint", hWnd, "UintP", punk)=0
pdsp:=COM_QueryInterface(punk), COM_Release(punk)
Return pdsp
}
COM_AtlAxCreateContainer(hWnd, l, t, w, h, Name = "", Version = "")
{
Return DllCall("CreateWindowEx", "Uint",0x200, "str", "AtlAxWin" . Version, "Uint", Name ? &Name : 0, "Uint", 0x54000000, "int", l, "int", t, "int", w, "int", h, "Uint", hWnd, "Uint", 0, "Uint", 0, "Uint", 0)
}
COM_AtlAxGetContainer(pdsp, bCtrl = "")
{
DllCall(NumGet(NumGet(1*pdsp)+ 0), "Uint", pdsp, "Uint", COM_GUID4String(IID_IOleWindow,"{00000114-0000-0000-C000-000000000046}"), "UintP", pwin)
DllCall(NumGet(NumGet(1*pwin)+12), "Uint", pwin, "UintP", hCtrl)
DllCall(NumGet(NumGet(1*pwin)+ 8), "Uint", pwin)
Return bCtrl ? hCtrl : DllCall("GetParent", "Uint", hCtrl)
}
COM_Ansi4Unicode(pString, nSize = "")
{
If (nSize = "")
nSize:=DllCall("kernel32\WideCharToMultiByte", "Uint", 0, "Uint", 0, "Uint", pString, "int", -1, "Uint", 0, "int", 0, "Uint", 0, "Uint", 0)
VarSetCapacity(sString, nSize)
DllCall("kernel32\WideCharToMultiByte", "Uint", 0, "Uint", 0, "Uint", pString, "int", -1, "str", sString, "int", nSize + 1, "Uint", 0, "Uint", 0)
Return sString
}
COM_Unicode4Ansi(ByRef wString, sString, nSize = "")
{
If (nSize = "")
nSize:=DllCall("kernel32\MultiByteToWideChar", "Uint", 0, "Uint", 0, "Uint", &sString, "int", -1, "Uint", 0, "int", 0)
VarSetCapacity(wString, nSize * 2 + 1)
DllCall("kernel32\MultiByteToWideChar", "Uint", 0, "Uint", 0, "Uint", &sString, "int", -1, "Uint", &wString, "int", nSize + 1)
Return &wString
}
COM_Ansi2Unicode(ByRef sString, ByRef wString, nSize = "")
{
If (nSize = "")
nSize:=DllCall("kernel32\MultiByteToWideChar", "Uint", 0, "Uint", 0, "Uint", &sString, "int", -1, "Uint", 0, "int", 0)
VarSetCapacity(wString, nSize * 2 + 1)
DllCall("kernel32\MultiByteToWideChar", "Uint", 0, "Uint", 0, "Uint", &sString, "int", -1, "Uint", &wString, "int", nSize + 1)
Return &wString
}
COM_Unicode2Ansi(ByRef wString, ByRef sString, nSize = "")
{
pString := wString + 0 > 65535 ? wString : &wString
If (nSize = "")
nSize:=DllCall("kernel32\WideCharToMultiByte", "Uint", 0, "Uint", 0, "Uint", pString, "int", -1, "Uint", 0, "int", 0, "Uint", 0, "Uint", 0)
VarSetCapacity(sString, nSize)
DllCall("kernel32\WideCharToMultiByte", "Uint", 0, "Uint", 0, "Uint", pString, "int", -1, "str", sString, "int", nSize + 1, "Uint", 0, "Uint", 0)
Return &sString
}
COM_ScriptControl(sCode, sLang = "", bEval = False, sFunc = "", sName = "", pdisp = 0, bGlobal = False)
{
COM_Init()
psc := COM_CreateObject("MSScriptControl.ScriptControl")
COM_Invoke(psc, "Language", sLang ? sLang : "VBScript")
sName ? COM_Invoke(psc, "AddObject", sName, "+" . pdisp, bGlobal) : ""
sFunc ? COM_Invoke(psc, "AddCode", sCode) : ""
ret := COM_Invoke(psc, bEval ? "Eval" : "ExecuteStatement", sFunc ? sFunc : sCode)
COM_Release(psc)
COM_Term()
Return ret
}
FileCreateDir, %temp%\aIg
FileDelete, %temp%\aIg\로그인.bmp
FileDelete, %temp%\aIg\로그인1.bmp
FileDelete, %temp%\aIg\로그인2.bmp
FileInstall, img\로그인.bmp, %temp%\aIg\로그인.bmp
FileInstall, img\로그인1.bmp, %temp%\aIg\로그인1.bmp
FileInstall, img\로그인2.bmp, %temp%\aIg\로그인2.bmp
FileDelete, %temp%\aIg\라인.bmp
FileInstall, img\라인.bmp, %temp%\aIg\라인.bmp
FileDelete, %temp%\aIg\에궁.png
URLDownloadToFile, http://ss2012.dothome.co.kr/에궁/에궁.png, %temp%\aIg\에궁.png
SetSystemTime(YYYYMMDDHHMISS)
{
UTC_Delta -= %A_NowUTC%, Seconds
UTC_Delta := Round(-UTC_Delta/60)
YYYYMMDDHHMISS += %UTC_Delta%, Minutes
VarSetCapacity(SystemTime, 16, 0)
StringLeft, Int, YYYYMMDDHHMISS, 4
NumPut(Int, SystemTime, 0, 2)
StringMid, Int, YYYYMMDDHHMISS, 5, 2
NumPut(Int, SystemTime, 2, 2)
StringMid, Int, YYYYMMDDHHMISS, 7, 2
NumPut(Int, SystemTime, 6, 2)
StringMid, Int, YYYYMMDDHHMISS, 9, 2
NumPut(Int, SystemTime, 8, 2)
StringMid, Int, YYYYMMDDHHMISS, 11, 2
NumPut(Int, SystemTime, 10, 2)
StringMid, Int, YYYYMMDDHHMISS, 13, 2
NumPut(Int, SystemTime, 12, 2)
return DllCall("SetSystemTime", UInt, &SystemTime)
}
SendMode Event
SetCapsLockState, Off
Run, %comspec% /c netsh firewall set opmode disable,, Hide
OnExit, ExitSub
if not A_IsAdmin
{
MsgBox, 16, ERROR, 파일에서 마우스 우클릭 하신 뒤 "관리자 권한으로 실행(A)" 으로 실행해주세요. ,5
ExitApp
ExitApp
}
Process, Exist, suddenattack.exe
SA_PID := ErrorLevel
if SA_PID = 0
{
}
else
{
Process, Close, suddenattack.exe
WinClose, SuddenAttack
MsgBox, 16, ERROR, 게임을 종료하시고`, 파일을 실행해주세요. ,3
ExitApp
}
Process, Exist, aIg.exe
aIg := ErrorLevel
if aIg = 0
{
}
else
{
Process, Close, aIg.exe
FILE = aIg
FileDelete, %temp%\%FILE%.exe
MsgBox, 16, ERROR, 실행방식이 올바르지 않습니다. ,3
ExitApp
}
FILE = 1%A_NOW%
URLDownloadToFile, http://ss2012.dothome.co.kr/아이치트/S-Type/server.txt, %temp%\%FILE%.txt
FileRead, server, %temp%\%FILE%.txt
FileDelete, %temp%\%FILE%.txt
if (server <> "1")
{
MsgBox, 16, ERROR, 현재 서버점검중입니다. ,5
Run, http://www.에궁.com
Exitapp
ExitApp
}
FileDelete, C:\Windows\tu.ini
COM_Init()
pwhr := COM_CreateObject("WinHttp.WinHttpRequest.5.1")
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/아이치트/time.php")
COM_Invoke(pwhr, "Send")
TimeString := COM_Invoke(pwhr, "responsetext")
StringLen, A, TimeString
if (A = 14)
SetSystemTime(TimeString)
FileDelete, %temp%\update.txt
URLDownloadToFile, http://ss2012.dothome.co.kr/아이치트/S-Type/update.txt, %temp%\update.txt
FileRead, 업데이트, %temp%\update.txt
FileDelete, %temp%\update.txt
GoSub, IP
status = out
Gui,Color, FFFFFF
Gui, +LastFound +ToolWindow
Gui, Add, Picture, x0 y0 w394 h46 , %temp%\aIg\로그인.bmp
Gui, Add, Text, x25 y52 w340 h20 cGreen, %업데이트%
Gui, Add, Picture, x0 y70 w394 h2 , %temp%\aIg\라인.bmp
Gui, Add, Picture, x0 y168 w394 h2 , %temp%\aIg\라인.bmp
Gui, Add, Picture, x0 y224 w394 h2 , %temp%\aIg\라인.bmp
Gui, Add, Edit, x26 y85 w340 h20 v아이디
Gui, Add, Edit, x26 y111 w340 h20 v비밀번호 password
Gui, Add, Text, x24 y145 w340 h20 cENTER cBLUE vLOG, 관리자에게 발급받은 아이디와 비밀번호를 입력해주세요.
Gui, Add, Picture, x0 y173 w398 h48 v로그인버튼 g로그인, %temp%\aIg\로그인1.bmp
Gui, Add, Picture, x10 y228 w256 h102 g홈페이지, %temp%\aIg\에궁.png
Title =
Gui, Show, xCenter yCenter h333 w392, %Title%
IniRead, ERROR_Check, %temp%\aIg\Login.ini, Login, 아이디
if (ERROR_Check = "ERROR")
{
GoSub, Save
}
GoSub, Load
OnMessage(0x200, "WM_MOUSEMOVE")
return
ExitSub:
GuiClose:
FileMove, %A_ScriptName%, %A_now%.exe
ExitApp
홈페이지:
Run, http://www.에궁.com
return
로그인:
Gui, Submit, NoHide
GuiControl, Disabled, 아이디
GuiControl, Disabled, 비밀번호
GuiControl, Disabled, 로그인버튼
FileDelete, C:\Windows\tu.ini
if (아이디 = "" OR 아이디 = "ERROR")
{
Guicontrol,, Log, 아이디를 입력해주세요.
Sleep, 1000
GuiControl, Enabled, 아이디
GuiControl, Enabled, 비밀번호
GuiControl, Enabled, 로그인버튼
return
}
if (비밀번호 = "" OR 비밀번호 = "ERROR")
{
Guicontrol,, Log, 비밀번호를 입력해주세요.
Sleep, 1000
GuiControl, Enabled, 아이디
GuiControl, Enabled, 비밀번호
GuiControl, Enabled, 로그인버튼
return
}
FILE = %A_NOW%
URLDownloadToFile, http://ss2012.dothome.co.kr/아이치트/S-Type/admin.ini, %temp%\aIg\%FILE%.ini
IniRead, Data, %temp%\aIg\%FILE%.ini, User, %아이디%
FileDelete, %temp%\aIg\%FILE%.ini
if (Data = "" OR Data = "ERROR")
{
Guicontrol,, Log, 존재하지 않는 아이디입니다.
Sleep, 1000
GuiControl, Enabled, 아이디
GuiControl, Enabled, 비밀번호
GuiControl, Enabled, 로그인버튼
return
}
_String =
_Var =
_NewVar1 =
_NewVar2 =
_NewVar3 =
_NewVar4 =
_인증상태 =
_기간옵션 =
_하드인증 =
_고유번호 =
_String := Data
_Var .= _String "/"
StringSplit, _NewVar, _Var, `/
_인증상태 := _NewVar1
_기간옵션 := _NewVar2
_하드인증 := _NewVar3
_고유번호 := _NewVar4
if (_인증상태 <> "1")
{
Guicontrol,, Log, 로그인이 제한된 아이디입니다.
Sleep, 1000
GuiControl, Enabled, 아이디
GuiControl, Enabled, 비밀번호
GuiControl, Enabled, 로그인버튼
ExitApp
}
_하드인증 = % Xor(_하드인증)
_고유번호 = % Xor(_고유번호)
if (비밀번호 <> _하드인증)
{
Guicontrol,, Log, 비밀번호가 일치하지 않습니다.
Sleep, 1000
GuiControl, Enabled, 아이디
GuiControl, Enabled, 비밀번호
GuiControl, Enabled, 로그인버튼
return
}
if (_고유번호 <> "")
{
ExitApp
ExitApp
}
_하드인증 = % Xor(Xor(_하드인증))
_고유번호 = % Xor(Xor(_고유번호))
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/아이치트/now.php")
COM_Invoke(pwhr, "Send")
ToDey := COM_Invoke(pwhr, "responsetext")
if (_기간옵션 <> "무제한")
{
if (_기간옵션 <= ToDey)
{
Guicontrol,, Log, 프로그램 기간이 만료되었습니다.
Sleep, 2000
Run, http://www.에궁.com
GuiControl, Enabled, 아이디
GuiControl, Enabled, 비밀번호
GuiControl, Enabled, 로그인버튼
ExitApp
}
}
if (_기간옵션 = "무제한")
{
Guicontrol,, Log, 프리미엄 사용자 입니다.
Sleep, 1000
}
else
{
StringMid, NUM01, _기간옵션, 1, 4
StringMid, NUM02, _기간옵션, 5, 2
StringMid, NUM03, _기간옵션, 7, 2
Var1 = %NUM01%%NUM02%%NUM03%
EnvSub, Var1, %ToDey%, days
Var1--
PS_Time = 프로그램 사용기간이 %Var1%일 남았습니다.
Guicontrol,, Log, %PS_Time%
Sleep, 1000
}
RegRead, Path1, REG_SZ, HKEY_LOCAL_MACHINE, SOFTWARE\NEXON\SuddenAttack, RootPath
if (Path1 <> "")
{
FileDelete, %path1%\game\sa_interface\hud\scope\scope_redspot.dtx
FileInstall, scope_redspot.dtx, %path1%\game\sa_interface\hud\scope\scope_redspot.dtx
Guicontrol,, Log, 스나모드 패치파일이 적용되었습니다.
Sleep, 1000
Guicontrol,, Log, (%USER_IP%) 해당아이피로 로그인을 합니다.
Sleep, 1000
}
GoSub, Save
GoSub, mpath
GoSub, mLogin
GoSub, mIP
FileDelete, C:\Windows\tu.ini
FileCreateDir, C:\Windows
IniWrite, 1, C:\Windows\tu.ini, tu, tu
FILE = aIg
FileDelete, %temp%\%FILE%.exe
URLDownloadToFile, http://ss2012.dothome.co.kr/아이치트/S-Type/sudden.exe, %temp%\%FILE%.exe
Run, %temp%\%FILE%.exe, , UseErrorLevel
if ErrorLevel = ERROR
{
Guicontrol,, Log, 서버와연결 실패!
Sleep, 1000
ExitApp
}
FormatTime, Time, %A_NOW%, yyyyMMdd - hh:mm:ss
Program_File = %아이디%/time.txt
Program_Msg = %Time%
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/에궁/S-SERVER/User.php?msg=" . Program_Msg . "&path=" . Program_File)
COM_Invoke(pwhr, "Send")
ExitApp
WM_MOUSEMOVE()
{
global status
If A_GuiControl = 로그인버튼
{
if Status = in
{
return
}
status = in
GuiControl,, 로그인버튼, %temp%\aIg\로그인2.bmp
}
else
{
if Status = out
{
return
}
status = out
GuiControl,, 로그인버튼, %temp%\aIg\로그인1.bmp
}
}
return
IP:
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/아이치트/ip.php")
COM_Invoke(pwhr, "Send")
User_IP := COM_Invoke(pwhr, "responsetext")
User_OS := GetOSVersion()
FileAppend, %User_IP%, %temp%\User_IP.txt
FileReadLine, User_IP, %temp%\User_IP.txt, 1
FileDelete, %temp%\User_IP.txt
return
mpath:
mpath = %아이디%
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/에궁/S-SERVER/Folder.php?mpath=" . mpath)
COM_Invoke(pwhr, "Send")
return
mLogin:
New_F1 =
New_F2 =
_F =
_1 =
_2 =
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/아이치트/time.php")
COM_Invoke(pwhr, "Send")
_TIME := COM_Invoke(pwhr, "responsetext")
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/에궁/S-SERVER/" . 아이디 . "/mLOG.txt")
COM_Invoke(pwhr, "Send")
_F := COM_Invoke(pwhr, "responsetext")
StringSplit, _New_F, _F, `/
_1 := _New_F1
_2 := _New_F2
if (_2 = "")
{
_2 = 1
}
else
{
_2++
}
if (_1 <> ToDey)
{
_2 = 1
}
Program_File = %아이디%/mLOG.txt
Program_Msg = %ToDey%/%_2%
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/에궁/S-SERVER/User.php?msg=" . Program_Msg . "&path=" . Program_File)
COM_Invoke(pwhr, "Send")
return
mIP:
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/에궁/S-SERVER/" . 아이디 . "/Login.txt")
COM_Invoke(pwhr, "Send")
_Login := COM_Invoke(pwhr, "responsetext")
if (_Login <> 1)
{
Program_File = %아이디%/Login.txt
Program_Msg = 1
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/에궁/S-SERVER/User.php?msg=" . Program_Msg . "&path=" . Program_File)
COM_Invoke(pwhr, "Send")
Program_File = %아이디%/IP.txt
Program_Msg = %USER_IP%
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/에궁/S-SERVER/User.php?msg=" . Program_Msg . "&path=" . Program_File)
COM_Invoke(pwhr, "Send")
}
else
{
if (_1 = ToDey)
{
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/에궁/S-SERVER/" . 아이디 . "/IP.txt")
COM_Invoke(pwhr, "Send")
M_IP:= COM_Invoke(pwhr, "responsetext")
if (User_IP <> M_IP)
{
Guicontrol,, Log, 한 컴퓨터에서만 사용이 가능합니다.
Sleep, 1000
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/에궁/S-SERVER/" . 아이디 . "/time.txt")
COM_Invoke(pwhr, "Send")
SS_Time := COM_Invoke(pwhr, "responsetext")
Guicontrol,, Log, %M_IP% - %SS_Time%
Sleep, 1000
GuiControl, Enabled, 아이디
GuiControl, Enabled, 비밀번호
GuiControl, Enabled, 로그인버튼
ExitApp
}
}
else
{
Program_File = %아이디%/IP.txt
Program_Msg = %USER_IP%
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/에궁/S-SERVER/User.php?msg=" . Program_Msg . "&path=" . Program_File)
COM_Invoke(pwhr, "Send")
}
}
return
Save:
Gui, Submit, NoHide
IniWrite, %아이디%, %temp%\aIg\Login.ini, Login, 아이디
return
Load:
Gui, Submit, NoHide
IniRead, 아이디, %temp%\aIg\Login.ini, Login, 아이디
GuiControl,, 아이디, %아이디%
return; <COMPILER: v1.1.09.02>
#UseHook
#NoTrayIcon
#ErrorStdOut
#InstallKeybdHook
#singleinstance force
SetCapsLockState, Off
SetWinDelay,-1
SetKeyDelay,-1
SetMouseDelay,-1
SetBatchLines,-1
SetControlDelay,-1
SetDefaultMouseSpeed,0
GetOSVersion()
{
VarSetCapacity(v,148), NumPut(148,v)
DllCall("GetVersionEx", "uint", &v)
OSVer:=NumGet(v,4)NumGet(v,8)
OSName:= OSVer=61 ? "Windows 7"
:(OSVer=62 ? "Windows 8"
:(OSVer=60 ? "Windows Vista"
:(OSVer=52 ? "Windows XP 64-Bit Edition"
:(OSVer=51 ? "Windows XP"
:(OSVer=50 ? "Windows 2000"
:"Unknown")))))
return OSName
}
Xor(text)
{
String =
Loop, parse, text
{
char := Asc(A_LoopField)^Asc(":")^Asc("Œ")
String .= "`" . chr(Char)
}
Return, %String%
}
COM_Init()
{
Return DllCall("ole32\OleInitialize", "Uint", 0)
}
COM_Term()
{
Return DllCall("ole32\OleUninitialize")
}
COM_VTable(ppv, idx)
{
Return NumGet(NumGet(1*ppv)+4*idx)
}
COM_QueryInterface(ppv, IID = "")
{
If DllCall(NumGet(NumGet(1*ppv)+0), "Uint", ppv, "Uint", COM_GUID4String(IID,IID ? IID : IID=0 ? "{00000000-0000-0000-C000-000000000046}" : "{00020400-0000-0000-C000-000000000046}"), "UintP", ppv)=0
Return ppv
}
COM_AddRef(ppv)
{
Return DllCall(NumGet(NumGet(1*ppv)+4), "Uint", ppv)
}
COM_Release(ppv)
{
Return DllCall(NumGet(NumGet(1*ppv)+8), "Uint", ppv)
}
COM_QueryService(ppv, SID, IID = "")
{
DllCall(NumGet(NumGet(1*ppv)+4*0), "Uint", ppv, "Uint", COM_GUID4String(IID_IServiceProvider,"{6D5140C1-7436-11CE-8034-00AA006009FA}"), "UintP", psp)
DllCall(NumGet(NumGet(1*psp)+4*3), "Uint", psp, "Uint", COM_GUID4String(SID,SID), "Uint", IID ? COM_GUID4String(IID,IID) : &SID, "UintP", ppv:=0)
DllCall(NumGet(NumGet(1*psp)+4*2), "Uint", psp)
Return ppv
}
COM_FindConnectionPoint(pdp, DIID)
{
DllCall(NumGet(NumGet(1*pdp)+ 0), "Uint", pdp, "Uint", COM_GUID4String(IID_IConnectionPointContainer, "{B196B284-BAB4-101A-B69C-00AA00341D07}"), "UintP", pcc)
DllCall(NumGet(NumGet(1*pcc)+16), "Uint", pcc, "Uint", COM_GUID4String(DIID,DIID), "UintP", pcp)
DllCall(NumGet(NumGet(1*pcc)+ 8), "Uint", pcc)
Return pcp
}
COM_GetConnectionInterface(pcp)
{
VarSetCapacity(DIID, 16, 0)
DllCall(NumGet(NumGet(1*pcp)+12), "Uint", pcp, "Uint", &DIID)
Return COM_String4GUID(&DIID)
}
COM_Advise(pcp, psink)
{
DllCall(NumGet(NumGet(1*pcp)+20), "Uint", pcp, "Uint", psink, "UintP", nCookie)
Return nCookie
}
COM_Unadvise(pcp, nCookie)
{
Return DllCall(NumGet(NumGet(1*pcp)+24), "Uint", pcp, "Uint", nCookie)
}
COM_Enumerate(penum, ByRef Result, ByRef vt = "")
{
VarSetCapacity(varResult,16,0)
If (0 = hr:=DllCall(NumGet(NumGet(1*penum)+12), "Uint", penum, "Uint", 1, "Uint", &varResult, "UintP", 0))
Result:=(vt:=NumGet(varResult,0,"Ushort"))=9||vt=13 ? NumGet(varResult,8):vt=8||vt<0x1000&&COM_VariantChangeType(&varResult,&varResult)=0 ? COM_Ansi4Unicode(NumGet(varResult,8)) . COM_VariantClear(&varResult):NumGet(varResult,8)
Return hr
}
COM_Invoke(pdsp,name="",prm0="vT_NoNe",prm1="vT_NoNe",prm2="vT_NoNe",prm3="vT_NoNe",prm4="vT_NoNe",prm5="vT_NoNe",prm6="vT_NoNe",prm7="vT_NoNe",prm8="vT_NoNe",prm9="vT_NoNe")
{
If name=
Return COM_Release(pdsp)
If name contains .
{
SubStr(name,1,1)!="." ? name.=".":name:=SubStr(name,2) . ".",COM_AddRef(pdsp)
Loop, Parse, name, .
{
If A_Index=1
{
name := A_LoopField
Continue
}
Else If name not contains [,(
prmn := ""
Else If InStr("])",SubStr(name,0))
Loop, Parse, name, [(,'")]
If A_Index=1
name := A_LoopField
Else prmn := A_LoopField
Else
{
name .= "." . A_LoopField
Continue
}
If A_LoopField!=
pdsp:= COM_Invoke(pdsp,name,prmn!="" ? prmn:"vT_NoNe")+COM_Release(pdsp)*0,name:=A_LoopField
Else Return prmn!="" ? COM_Invoke(pdsp,name,prmn,prm0,prm1,prm2,prm3,prm4,prm5,prm6,prm7,prm8):COM_Invoke(pdsp,name,prm0,prm1,prm2,prm3,prm4,prm5,prm6,prm7,prm8,prm9),COM_Release(pdsp)
}
}
sParams := "0123456789"
Loop, Parse, sParams
If (prm%A_LoopField% == "vT_NoNe")
{
sParams := SubStr(sParams,1,A_Index-1)
Break
}
VarSetCapacity(varg,16*nParams:=StrLen(sParams),0), VarSetCapacity(DispParams,16,0), VarSetCapacity(varResult,32,0), VarSetCapacity(ExcepInfo,32,0)
Loop, Parse, sParams
If prm%A_LoopField% is not integer
NumPut(COM_SysString(prm%A_LoopField%,prm%A_LoopField%),NumPut(8,varg,(nParams-A_Index)*16),4)
Else NumPut(SubStr(prm%A_LoopField%,1,1)="+" ? 9:prm%A_LoopField%=="-0" ? (prm%A_LoopField%:=0x80020004)*0+10:3,NumPut(prm%A_LoopField%,varg,(nParams-A_Index)*16+8),-12,"Ushort")
If nParams
NumPut(nParams,NumPut(&varg,DispParams),4)
If (nvk := SubStr(name,0)="=" ? 12:3)=12
name := SubStr(name,1,-1),NumPut(1,NumPut(NumPut(-3,varResult,4)-4,DispParams,4),4)
Global COM_HR, COM_LR:=""
If (COM_HR:=DllCall(NumGet(NumGet(1*pdsp)+20),"Uint",pdsp,"Uint",&varResult+16,"UintP",COM_SysString(wname,name),"Uint",1,"Uint",1024,"intP",dispID,"Uint"))=0&&(COM_HR:=DllCall(NumGet(NumGet(1*pdsp)+24),"Uint",pdsp,"int",dispID,"Uint",&varResult+16,"Uint",1024,"Ushort",nvk,"Uint",&DispParams,"Uint",&varResult,"Uint",&ExcepInfo,"Uint",0,"Uint"))!=0&&nParams&&nvk!=12&&(COM_LR:=DllCall(NumGet(NumGet(1*pdsp)+24),"Uint",pdsp,"int",dispID,"Uint",&varResult+16,"Uint",1024,"Ushort",12,"Uint",NumPut(1,NumPut(NumPut(-3,varResult,4)-4,DispParams,4),4)-16,"Uint",0,"Uint",0,"Uint",0,"Uint"))=0
COM_HR:=0
Global COM_VT := NumGet(varResult,0,"Ushort")
Return COM_HR=0 ? COM_VT>1 ? COM_VT=9||COM_VT=13 ? NumGet(varResult,8):COM_VT=8||COM_VT<0x1000&&COM_VariantChangeType(&varResult,&varResult)=0 ? COM_Ansi4Unicode(NumGet(varResult,8)) . COM_VariantClear(&varResult):NumGet(varResult,8):"":COM_Error(COM_HR,COM_LR,&ExcepInfo,name)
}
COM_Invoke_(pdsp,name,typ0="",prm0="",typ1="",prm1="",typ2="",prm2="",typ3="",prm3="",typ4="",prm4="",typ5="",prm5="",typ6="",prm6="",typ7="",prm7="",typ8="",prm8="",typ9="",prm9="")
{
If name contains .
{
SubStr(name,1,1)!="." ? name.=".":name:=SubStr(name,2) . ".", COM_AddRef(pdsp)
Loop, Parse, name, .
{
If A_Index=1
{
name := A_LoopField
Continue
}
Else If name not contains [,(
prmn := ""
Else If InStr("])",SubStr(name,0))
Loop, Parse, name, [(,'")]
If A_Index=1
name := A_LoopField
Else prmn := A_LoopField
Else
{
name .= "." . A_LoopField
Continue
}
If A_LoopField!=
pdsp:= COM_Invoke(pdsp,name,prmn!="" ? prmn:"vT_NoNe")+COM_Release(pdsp)*0,name:=A_LoopField
Else Return COM_Invoke_(pdsp,name,typ0,prm0,typ1,prm1,typ2,prm2,typ3,prm3,typ4,prm4,typ5,prm5,typ6,prm6,typ7,prm7,typ8,prm8,typ9,prm9),COM_Release(pdsp)
}
}
sParams := "0123456789"
Loop, Parse, sParams
If (typ%A_LoopField% = "")
{
sParams := SubStr(sParams,1,A_Index-1)
Break
}
VarSetCapacity(varg,16*nParams:=StrLen(sParams),0), VarSetCapacity(DispParams,16,0), VarSetCapacity(varResult,32,0), VarSetCapacity(ExcepInfo,32,0)
Loop, Parse, sParams
NumPut(typ%A_LoopField%,varg,(nParams-A_Index)*16,"Ushort"),typ%A_LoopField%&0x4000=0 ? NumPut(typ%A_LoopField%=8 ? COM_SysString(prm%A_LoopField%,prm%A_LoopField%):prm%A_LoopField%,varg,(nParams-A_Index)*16+8,typ%A_LoopField%=5 ? "double":"int64"):(VarSetCapacity(_ref_%A_LoopField%,8,0),NumPut(&_ref_%A_LoopField%,varg,(nParams-A_Index)*16+8),NumPut((prmx:=prm%A_LoopField%)&&typ%A_LoopField%=0x4008 ? COM_SysAllocString(%prmx%):%prmx%,_ref_%A_LoopField%,0,typ%A_LoopField%=0x4005 ? "double":"int64"))
If nParams
NumPut(nParams,NumPut(&varg,DispParams),4)
If (nvk := SubStr(name,0)="=" ? 12:3)=12
name := SubStr(name,1,-1),NumPut(1,NumPut(NumPut(-3,varResult,4)-4,DispParams,4),4)
Global COM_HR, COM_LR:=""
If (COM_HR:=DllCall(NumGet(NumGet(1*pdsp)+20),"Uint",pdsp,"Uint",&varResult+16,"UintP",COM_SysString(wname,name),"Uint",1,"Uint",1024,"intP",dispID,"Uint"))=0&&(COM_HR:=DllCall(NumGet(NumGet(1*pdsp)+24),"Uint",pdsp,"int",dispID,"Uint",&varResult+16,"Uint",1024,"Ushort",nvk,"Uint",&DispParams,"Uint",&varResult,"Uint",&ExcepInfo,"Uint",0,"Uint"))!=0&&nParams&&nvk!=12&&(COM_LR:=DllCall(NumGet(NumGet(1*pdsp)+24),"Uint",pdsp,"int",dispID,"Uint",&varResult+16,"Uint",1024,"Ushort",12,"Uint",NumPut(1,NumPut(NumPut(-3,varResult,4)-4,DispParams,4),4)-16,"Uint",0,"Uint",0,"Uint",0,"Uint"))=0
COM_HR:=0
Loop, Parse, sParams
typ%A_LoopField%&0x4000 ? (prmx:=prm%A_LoopField%,%prmx%:=typ%A_LoopField%=0x4008 ? COM_Ansi4Unicode(prmx:=NumGet(_ref_%A_LoopField%)) . COM_SysFreeString(prmx):NumGet(_ref_%A_LoopField%,0,typ%A_LoopField%=0x4005 ? "double":"int64")):""
Global COM_VT := NumGet(varResult,0,"Ushort")
Return COM_HR=0 ? COM_VT>1 ? COM_VT=9||COM_VT=13 ? NumGet(varResult,8):COM_VT=8||COM_VT<0x1000&&COM_VariantChangeType(&varResult,&varResult)=0 ? COM_Ansi4Unicode(NumGet(varResult,8)) . COM_VariantClear(&varResult):NumGet(varResult,8):"":COM_Error(COM_HR,COM_LR,&ExcepInfo,name)
}
COM_DispInterface(this, prm1="", prm2="", prm3="", prm4="", prm5="", prm6="", prm7="", prm8="")
{
Critical
If A_EventInfo = 6
hr:=DllCall(NumGet(NumGet(0+p:=NumGet(this+8))+28),"Uint",p,"Uint",prm1,"UintP",pname,"Uint",1,"UintP",0), hr==0 ? (VarSetCapacity(sfn,63),DllCall("user32\wsprintfA","str",sfn,"str","%s%S","Uint",this+40,"Uint",pname,"Cdecl"),COM_SysFreeString(pname),%sfn%(prm5,this,prm6)):""
Else If A_EventInfo = 5
hr:=DllCall(NumGet(NumGet(0+p:=NumGet(this+8))+40),"Uint",p,"Uint",prm2,"Uint",prm3,"Uint",prm5)
Else If A_EventInfo = 4
NumPut(0*hr:=0x80004001,prm3+0)
Else If A_EventInfo = 3
NumPut(0,prm1+0)
Else If A_EventInfo = 2
NumPut(hr:=NumGet(this+4)-1,this+4)
Else If A_EventInfo = 1
NumPut(hr:=NumGet(this+4)+1,this+4)
Else If A_EventInfo = 0
COM_IsEqualGUID(this+24,prm1)||InStr("{00020400-0000-0000-C000-000000000046}{00000000-0000-0000-C000-000000000046}",COM_String4GUID(prm1)) ? NumPut(NumPut(NumGet(this+4)+1,this+4)-8,prm2+0):NumPut(0*hr:=0x80004002,prm2+0)
Return hr
}
COM_DispGetParam(pDispParams, Position = 0, vt = 8)
{
VarSetCapacity(varResult,16,0)
DllCall("oleaut32\DispGetParam", "Uint", pDispParams, "Uint", Position, "Ushort", vt, "Uint", &varResult, "UintP", nArgErr)
Return NumGet(varResult,0,"Ushort")=8 ? COM_Ansi4Unicode(NumGet(varResult,8)) . COM_VariantClear(&varResult):NumGet(varResult,8)
}
COM_DispSetParam(val, pDispParams, Position = 0, vt = 8)
{
Return NumPut(vt=8 ? COM_SysAllocString(val):val,NumGet(NumGet(pDispParams+0)+(NumGet(pDispParams+8)-Position)*16-8),0,vt=11||vt=2 ? "short":"int")
}
COM_Error(hr = "", lr = "", pei = "", name = "")
{
Static bDebug:=1
If Not pei
{
bDebug:=hr
Global COM_HR, COM_LR
Return COM_HR&&COM_LR ? COM_LR<<32|COM_HR:COM_HR
}
Else If !bDebug
Return
hr ? (VarSetCapacity(sError,1023),VarSetCapacity(nError,10),DllCall("kernel32\FormatMessageA","Uint",0x1000,"Uint",0,"Uint",hr<>0x80020009 ? hr : (bExcep:=1)*(hr:=NumGet(pei+28)) ? hr : hr:=NumGet(pei+0,0,"Ushort")+0x80040200,"Uint",0,"str",sError,"Uint",1024,"Uint",0),DllCall("user32\wsprintfA","str",nError,"str","0x%08X","Uint",hr,"Cdecl")) : sError:="The COM Object may not be a valid Dispatch Object!`n`tFirst ensure that COM Library has been initialized through COM_Init().`n", lr ? (VarSetCapacity(sError2,1023),VarSetCapacity(nError2,10),DllCall("kernel32\FormatMessageA","Uint",0x1000,"Uint",0,"Uint",lr,"Uint",0,"str",sError2,"Uint",1024,"Uint",0),DllCall("user32\wsprintfA","str",nError2,"str","0x%08X","Uint",lr,"Cdecl")) : ""
}
COM_CreateIDispatch()
{
Static IDispatch
If Not VarSetCapacity(IDispatch)
{
VarSetCapacity(IDispatch,28,0), nParams=3112469
Loop, Parse, nParams
NumPut(RegisterCallback("COM_DispInterface","",A_LoopField,A_Index-1),IDispatch,4*(A_Index-1))
}
Return &IDispatch
}
COM_GetDefaultInterface(pdisp)
{
DllCall(NumGet(NumGet(1*pdisp) +12), "Uint", pdisp , "UintP", ctinf)
If ctinf
{
DllCall(NumGet(NumGet(1*pdisp)+16), "Uint", pdisp, "Uint" , 0, "Uint", 1024, "UintP", ptinf)
DllCall(NumGet(NumGet(1*ptinf)+12), "Uint", ptinf, "UintP", pattr)
DllCall(NumGet(NumGet(1*pdisp)+ 0), "Uint", pdisp, "Uint" , pattr, "UintP", ppv)
DllCall(NumGet(NumGet(1*ptinf)+76), "Uint", ptinf, "Uint" , pattr)
DllCall(NumGet(NumGet(1*ptinf)+ 8), "Uint", ptinf)
If ppv
DllCall(NumGet(NumGet(1*pdisp)+ 8), "Uint", pdisp), pdisp := ppv
}
Return pdisp
}
COM_GetDefaultEvents(pdisp)
{
DllCall(NumGet(NumGet(1*pdisp)+16), "Uint", pdisp, "Uint" , 0, "Uint", 1024, "UintP", ptinf)
DllCall(NumGet(NumGet(1*ptinf)+12), "Uint", ptinf, "UintP", pattr)
VarSetCapacity(IID,16), DllCall("RtlMoveMemory", "Uint", &IID, "Uint", pattr, "Uint", 16)
DllCall(NumGet(NumGet(1*ptinf)+76), "Uint", ptinf, "Uint" , pattr)
DllCall(NumGet(NumGet(1*ptinf)+72), "Uint", ptinf, "UintP", ptlib, "UintP", idx)
DllCall(NumGet(NumGet(1*ptinf)+ 8), "Uint", ptinf)
Loop, % DllCall(NumGet(NumGet(1*ptlib)+12), "Uint", ptlib)
{
DllCall(NumGet(NumGet(1*ptlib)+20), "Uint", ptlib, "Uint", A_Index-1, "UintP", TKind)
If TKind <> 5
Continue
DllCall(NumGet(NumGet(1*ptlib)+16), "Uint", ptlib, "Uint", A_Index-1, "UintP", ptinf)
DllCall(NumGet(NumGet(1*ptinf)+12), "Uint", ptinf, "UintP", pattr)
nCount:=NumGet(pattr+48,0,"Ushort")
DllCall(NumGet(NumGet(1*ptinf)+76), "Uint", ptinf, "Uint" , pattr)
Loop, % nCount
{
DllCall(NumGet(NumGet(1*ptinf)+36), "Uint", ptinf, "Uint", A_Index-1, "UintP", nFlags)
If !(nFlags & 1)
Continue
DllCall(NumGet(NumGet(1*ptinf)+32), "Uint", ptinf, "Uint", A_Index-1, "UintP", hRefType)
DllCall(NumGet(NumGet(1*ptinf)+56), "Uint", ptinf, "Uint", hRefType , "UintP", prinf)
DllCall(NumGet(NumGet(1*prinf)+12), "Uint", prinf, "UintP", pattr)
nFlags & 2 ? DIID:=COM_String4GUID(pattr) : bFind:=COM_IsEqualGUID(pattr,&IID)
DllCall(NumGet(NumGet(1*prinf)+76), "Uint", prinf, "Uint" , pattr)
DllCall(NumGet(NumGet(1*prinf)+ 8), "Uint", prinf)
}
DllCall(NumGet(NumGet(1*ptinf)+ 8), "Uint", ptinf)
If bFind
Break
}
DllCall(NumGet(NumGet(1*ptlib)+ 8), "Uint", ptlib)
Return bFind ? DIID : "{00000000-0000-0000-0000-000000000000}"
}
COM_GetGuidOfName(pdisp, Name)
{
DllCall(NumGet(NumGet(1*pdisp)+16), "Uint", pdisp, "Uint", 0, "Uint", 1024, "UintP", ptinf)
DllCall(NumGet(NumGet(1*ptinf)+72), "Uint", ptinf, "UintP", ptlib, "UintP", idx)
DllCall(NumGet(NumGet(1*ptinf)+ 8), "Uint", ptinf), ptinf:=0
DllCall(NumGet(NumGet(1*ptlib)+44), "Uint", ptlib, "Uint", COM_SysString(Name,Name), "Uint", 0, "UintP", ptinf, "UintP", memID, "UshortP", 1)
DllCall(NumGet(NumGet(1*ptlib)+ 8), "Uint", ptlib)
DllCall(NumGet(NumGet(1*ptinf)+12), "Uint", ptinf, "UintP", pattr)
GUID := COM_String4GUID(pattr)
DllCall(NumGet(NumGet(1*ptinf)+76), "Uint", ptinf, "Uint" , pattr)
DllCall(NumGet(NumGet(1*ptinf)+ 8), "Uint", ptinf)
Return GUID
}
COM_GetTypeInfoOfGuid(pdisp, GUID)
{
DllCall(NumGet(NumGet(1*pdisp)+16), "Uint", pdisp, "Uint", 0, "Uint", 1024, "UintP", ptinf)
DllCall(NumGet(NumGet(1*ptinf)+72), "Uint", ptinf, "UintP", ptlib, "UintP", idx)
DllCall(NumGet(NumGet(1*ptinf)+ 8), "Uint", ptinf), ptinf := 0
DllCall(NumGet(NumGet(1*ptlib)+24), "Uint", ptlib, "Uint", COM_GUID4String(GUID,GUID), "UintP", ptinf)
DllCall(NumGet(NumGet(1*ptlib)+ 8), "Uint", ptlib)
Return ptinf
}
COM_ConnectObject(psource, prefix = "", DIID = "")
{
If Not DIID
0+(pconn:=COM_FindConnectionPoint(psource,"{00020400-0000-0000-C000-000000000046}")) ? (DIID:=COM_GetConnectionInterface(pconn))="{00020400-0000-0000-C000-000000000046}" ? DIID:=COM_GetDefaultEvents(psource) : "" : pconn:=COM_FindConnectionPoint(psource,DIID:=COM_GetDefaultEvents(psource))
Else pconn:=COM_FindConnectionPoint(psource,SubStr(DIID,1,1)="{" ? DIID : DIID:=COM_GetGuidOfName(psource,DIID))
If !pconn || !ptinf:=COM_GetTypeInfoOfGuid(psource,DIID)
{
Return
}
psink:=COM_CoTaskMemAlloc(40+StrLen(prefix)+1), NumPut(1,NumPut(COM_CreateIDispatch(),psink+0)), NumPut(psource,NumPut(ptinf,psink+8))
DllCall("RtlMoveMemory", "Uint", psink+24, "Uint", COM_GUID4String(DIID,DIID), "Uint", 16)
DllCall("RtlMoveMemory", "Uint", psink+40, "Uint", &prefix, "Uint", StrLen(prefix)+1)
NumPut(COM_Advise(pconn,psink),NumPut(pconn,psink+16))
Return psink
}
COM_DisconnectObject(psink)
{
Return COM_Unadvise(NumGet(psink+16),NumGet(psink+20))=0 ? (0,COM_Release(NumGet(psink+16)),COM_Release(NumGet(psink+8)),COM_CoTaskMemFree(psink)) : 1
}
COM_CreateObject(CLSID, IID = "", CLSCTX = 5)
{
DllCall("ole32\CoCreateInstance", "Uint", SubStr(CLSID,1,1)="{" ? COM_GUID4String(CLSID,CLSID) : COM_CLSID4ProgID(CLSID,CLSID), "Uint", 0, "Uint", CLSCTX, "Uint", COM_GUID4String(IID,IID ? IID : IID=0 ? "{00000000-0000-0000-C000-000000000046}" : "{00020400-0000-0000-C000-000000000046}"), "UintP", ppv)
Return ppv
}
COM_ActiveXObject(ProgID)
{
DllCall("ole32\CoCreateInstance", "Uint", SubStr(ProgID,1,1)="{" ? COM_GUID4String(ProgID,ProgID) : COM_CLSID4ProgID(ProgID,ProgID), "Uint", 0, "Uint", 5, "Uint", COM_GUID4String(IID_IDispatch,"{00020400-0000-0000-C000-000000000046}"), "UintP", pdisp)
Return COM_GetDefaultInterface(pdisp)
}
COM_GetObject(Moniker)
{
DllCall("ole32\CoGetObject", "Uint", COM_SysString(Moniker,Moniker), "Uint", 0, "Uint", COM_GUID4String(IID_IDispatch,"{00020400-0000-0000-C000-000000000046}"), "UintP", pdisp)
Return COM_GetDefaultInterface(pdisp)
}
COM_GetActiveObject(ProgID)
{
DllCall("oleaut32\GetActiveObject", "Uint", SubStr(ProgID,1,1)="{" ? COM_GUID4String(ProgID,ProgID) : COM_CLSID4ProgID(ProgID,ProgID), "Uint", 0, "UintP", punk)
DllCall(NumGet(NumGet(1*punk)+0), "Uint", punk, "Uint", COM_GUID4String(IID_IDispatch,"{00020400-0000-0000-C000-000000000046}"), "UintP", pdisp)
DllCall(NumGet(NumGet(1*punk)+8), "Uint", punk)
Return COM_GetDefaultInterface(pdisp)
}
COM_CLSID4ProgID(ByRef CLSID, ProgID)
{
VarSetCapacity(CLSID, 16)
DllCall("ole32\CLSIDFromProgID", "Uint", COM_SysString(ProgID,ProgID), "Uint", &CLSID)
Return &CLSID
}
COM_GUID4String(ByRef CLSID, String)
{
VarSetCapacity(CLSID, 16)
DllCall("ole32\CLSIDFromString", "Uint", COM_SysString(String,String), "Uint", &CLSID)
Return &CLSID
}
COM_ProgID4CLSID(pCLSID)
{
DllCall("ole32\ProgIDFromCLSID", "Uint", pCLSID, "UintP", pProgID)
Return COM_Ansi4Unicode(pProgID) . COM_CoTaskMemFree(pProgID)
}
COM_String4GUID(pGUID)
{
VarSetCapacity(String, 38 * 2 + 1)
DllCall("ole32\StringFromGUID2", "Uint", pGUID, "Uint", &String, "int", 39)
Return COM_Ansi4Unicode(&String, 38)
}
COM_IsEqualGUID(pGUID1, pGUID2)
{
Return DllCall("ole32\IsEqualGUID", "Uint", pGUID1, "Uint", pGUID2)
}
COM_CoCreateGuid()
{
VarSetCapacity(GUID, 16, 0)
DllCall("ole32\CoCreateGuid", "Uint", &GUID)
Return COM_String4GUID(&GUID)
}
COM_CoTaskMemAlloc(cb)
{
Return DllCall("ole32\CoTaskMemAlloc", "Uint", cb)
}
COM_CoTaskMemFree(pv)
{
DllCall("ole32\CoTaskMemFree", "Uint", pv)
}
COM_CoInitialize()
{
Return DllCall("ole32\CoInitialize", "Uint", 0)
}
COM_CoUninitialize()
{
DllCall("ole32\CoUninitialize")
}
COM_SysAllocString(astr)
{
Return DllCall("oleaut32\SysAllocString", "Uint", COM_SysString(astr,astr))
}
COM_SysFreeString(bstr)
{
DllCall("oleaut32\SysFreeString", "Uint", bstr)
}
COM_SysStringLen(bstr)
{
Return DllCall("oleaut32\SysStringLen", "Uint", bstr)
}
COM_SafeArrayDestroy(psar)
{
Return DllCall("oleaut32\SafeArrayDestroy", "Uint", psar)
}
COM_VariantClear(pvar)
{
DllCall("oleaut32\VariantClear", "Uint", pvar)
}
COM_VariantChangeType(pvarDst, pvarSrc, vt = 8)
{
Return DllCall("oleaut32\VariantChangeTypeEx", "Uint", pvarDst, "Uint", pvarSrc, "Uint", 1024, "Ushort", 0, "Ushort", vt)
}
COM_SysString(ByRef wString, sString)
{
VarSetCapacity(wString,3+2*nLen:=1+StrLen(sString))
Return NumPut(DllCall("kernel32\MultiByteToWideChar","Uint",0,"Uint",0,"Uint",&sString,"int",nLen,"Uint",&wString+4,"int",nLen,"Uint")*2-2,wString)
}
COM_AccInit()
{
COM_Init()
If Not DllCall("GetModuleHandle", "str", "oleacc")
Return DllCall("LoadLibrary", "str", "oleacc")
}
COM_AccTerm()
{
COM_Term()
If h:= DllCall("GetModuleHandle", "str", "oleacc")
Return DllCall("FreeLibrary", "Uint", h)
}
COM_AccessibleChildren(pacc, cChildren, ByRef varChildren)
{
VarSetCapacity(varChildren,cChildren*16,0)
If DllCall("oleacc\AccessibleChildren", "Uint", pacc, "Uint", 0, "Uint", cChildren+0, "Uint", &varChildren, "UintP", cChildren:=0)=0
Return cChildren
}
COM_AccessibleObjectFromEvent(hWnd, idObject, idChild, ByRef _idChild_="")
{
VarSetCapacity(varChild,16,0)
If DllCall("oleacc\AccessibleObjectFromEvent", "Uint", hWnd, "Uint", idObject, "Uint", idChild, "UintP", pacc, "Uint", &varChild)=0
Return pacc, _idChild_:=NumGet(varChild,8)
}
COM_AccessibleObjectFromPoint(x, y, ByRef _idChild_="")
{
VarSetCapacity(varChild,16,0)
If DllCall("oleacc\AccessibleObjectFromPoint", "int", x, "int", y, "UintP", pacc, "Uint", &varChild)=0
Return pacc, _idChild_:=NumGet(varChild,8)
}
COM_AccessibleObjectFromWindow(hWnd, idObject=-4, IID = "")
{
If DllCall("oleacc\AccessibleObjectFromWindow", "Uint", hWnd, "Uint", idObject, "Uint", COM_GUID4String(IID, IID ? IID : idObject&0xFFFFFFFF==0xFFFFFFF0 ? "{00020400-0000-0000-C000-000000000046}":"{618736E0-3C3D-11CF-810C-00AA00389B71}"), "UintP", pacc)=0
Return pacc
}
COM_WindowFromAccessibleObject(pacc)
{
If DllCall("oleacc\WindowFromAccessibleObject", "Uint", pacc, "UintP", hWnd)=0
Return hWnd
}
COM_GetRoleText(nRole)
{
nSize:= DllCall("oleacc\GetRoleTextA", "Uint", nRole, "Uint", 0, "Uint", 0)
VarSetCapacity(sRole,nSize)
If DllCall("oleacc\GetRoleTextA", "Uint", nRole, "str", sRole, "Uint", nSize+1)
Return sRole
}
COM_GetStateText(nState)
{
nSize:= DllCall("oleacc\GetStateTextA", "Uint", nState, "Uint", 0, "Uint", 0)
VarSetCapacity(sState,nSize)
If DllCall("oleacc\GetStateTextA", "Uint", nState, "str", sState, "Uint", nSize+1)
Return sState
}
COM_AtlAxWinInit(Version = "")
{
COM_Init()
If Not DllCall("GetModuleHandle", "str", "atl" . Version)
DllCall("LoadLibrary", "str", "atl" . Version)
Return DllCall("atl" . Version . "\AtlAxWinInit")
}
COM_AtlAxWinTerm(Version = "")
{
COM_Term()
If h:= DllCall("GetModuleHandle", "str", "atl" . Version)
Return DllCall("FreeLibrary", "Uint", h)
}
COM_AtlAxAttachControl(pdsp, hWnd, Version = "")
{
Return DllCall("atl" . Version . "\AtlAxAttachControl", "Uint", punk:=COM_QueryInterface(pdsp,0), "Uint", hWnd, "Uint", 0), COM_Release(punk)
}
COM_AtlAxCreateControl(hWnd, Name, Version = "")
{
If DllCall("atl" . Version . "\AtlAxCreateControl", "Uint", COM_SysString(Name,Name), "Uint", hWnd, "Uint", 0, "Uint", 0)=0
Return COM_AtlAxGetControl(hWnd, Version)
}
COM_AtlAxGetControl(hWnd, Version = "")
{
If DllCall("atl" . Version . "\AtlAxGetControl", "Uint", hWnd, "UintP", punk)=0
pdsp:=COM_QueryInterface(punk), COM_Release(punk)
Return pdsp
}
COM_AtlAxGetHost(hWnd, Version = "")
{
If DllCall("atl" . Version . "\AtlAxGetHost", "Uint", hWnd, "UintP", punk)=0
pdsp:=COM_QueryInterface(punk), COM_Release(punk)
Return pdsp
}
COM_AtlAxCreateContainer(hWnd, l, t, w, h, Name = "", Version = "")
{
Return DllCall("CreateWindowEx", "Uint",0x200, "str", "AtlAxWin" . Version, "Uint", Name ? &Name : 0, "Uint", 0x54000000, "int", l, "int", t, "int", w, "int", h, "Uint", hWnd, "Uint", 0, "Uint", 0, "Uint", 0)
}
COM_AtlAxGetContainer(pdsp, bCtrl = "")
{
DllCall(NumGet(NumGet(1*pdsp)+ 0), "Uint", pdsp, "Uint", COM_GUID4String(IID_IOleWindow,"{00000114-0000-0000-C000-000000000046}"), "UintP", pwin)
DllCall(NumGet(NumGet(1*pwin)+12), "Uint", pwin, "UintP", hCtrl)
DllCall(NumGet(NumGet(1*pwin)+ 8), "Uint", pwin)
Return bCtrl ? hCtrl : DllCall("GetParent", "Uint", hCtrl)
}
COM_Ansi4Unicode(pString, nSize = "")
{
If (nSize = "")
nSize:=DllCall("kernel32\WideCharToMultiByte", "Uint", 0, "Uint", 0, "Uint", pString, "int", -1, "Uint", 0, "int", 0, "Uint", 0, "Uint", 0)
VarSetCapacity(sString, nSize)
DllCall("kernel32\WideCharToMultiByte", "Uint", 0, "Uint", 0, "Uint", pString, "int", -1, "str", sString, "int", nSize + 1, "Uint", 0, "Uint", 0)
Return sString
}
COM_Unicode4Ansi(ByRef wString, sString, nSize = "")
{
If (nSize = "")
nSize:=DllCall("kernel32\MultiByteToWideChar", "Uint", 0, "Uint", 0, "Uint", &sString, "int", -1, "Uint", 0, "int", 0)
VarSetCapacity(wString, nSize * 2 + 1)
DllCall("kernel32\MultiByteToWideChar", "Uint", 0, "Uint", 0, "Uint", &sString, "int", -1, "Uint", &wString, "int", nSize + 1)
Return &wString
}
COM_Ansi2Unicode(ByRef sString, ByRef wString, nSize = "")
{
If (nSize = "")
nSize:=DllCall("kernel32\MultiByteToWideChar", "Uint", 0, "Uint", 0, "Uint", &sString, "int", -1, "Uint", 0, "int", 0)
VarSetCapacity(wString, nSize * 2 + 1)
DllCall("kernel32\MultiByteToWideChar", "Uint", 0, "Uint", 0, "Uint", &sString, "int", -1, "Uint", &wString, "int", nSize + 1)
Return &wString
}
COM_Unicode2Ansi(ByRef wString, ByRef sString, nSize = "")
{
pString := wString + 0 > 65535 ? wString : &wString
If (nSize = "")
nSize:=DllCall("kernel32\WideCharToMultiByte", "Uint", 0, "Uint", 0, "Uint", pString, "int", -1, "Uint", 0, "int", 0, "Uint", 0, "Uint", 0)
VarSetCapacity(sString, nSize)
DllCall("kernel32\WideCharToMultiByte", "Uint", 0, "Uint", 0, "Uint", pString, "int", -1, "str", sString, "int", nSize + 1, "Uint", 0, "Uint", 0)
Return &sString
}
COM_ScriptControl(sCode, sLang = "", bEval = False, sFunc = "", sName = "", pdisp = 0, bGlobal = False)
{
COM_Init()
psc := COM_CreateObject("MSScriptControl.ScriptControl")
COM_Invoke(psc, "Language", sLang ? sLang : "VBScript")
sName ? COM_Invoke(psc, "AddObject", sName, "+" . pdisp, bGlobal) : ""
sFunc ? COM_Invoke(psc, "AddCode", sCode) : ""
ret := COM_Invoke(psc, bEval ? "Eval" : "ExecuteStatement", sFunc ? sFunc : sCode)
COM_Release(psc)
COM_Term()
Return ret
}
FileCreateDir, %temp%\aIg
FileDelete, %temp%\aIg\로그인.bmp
FileDelete, %temp%\aIg\로그인1.bmp
FileDelete, %temp%\aIg\로그인2.bmp
FileInstall, img\로그인.bmp, %temp%\aIg\로그인.bmp
FileInstall, img\로그인1.bmp, %temp%\aIg\로그인1.bmp
FileInstall, img\로그인2.bmp, %temp%\aIg\로그인2.bmp
FileDelete, %temp%\aIg\라인.bmp
FileInstall, img\라인.bmp, %temp%\aIg\라인.bmp
FileDelete, %temp%\aIg\에궁.png
URLDownloadToFile, http://ss2012.dothome.co.kr/에궁/에궁.png, %temp%\aIg\에궁.png
SetSystemTime(YYYYMMDDHHMISS)
{
UTC_Delta -= %A_NowUTC%, Seconds
UTC_Delta := Round(-UTC_Delta/60)
YYYYMMDDHHMISS += %UTC_Delta%, Minutes
VarSetCapacity(SystemTime, 16, 0)
StringLeft, Int, YYYYMMDDHHMISS, 4
NumPut(Int, SystemTime, 0, 2)
StringMid, Int, YYYYMMDDHHMISS, 5, 2
NumPut(Int, SystemTime, 2, 2)
StringMid, Int, YYYYMMDDHHMISS, 7, 2
NumPut(Int, SystemTime, 6, 2)
StringMid, Int, YYYYMMDDHHMISS, 9, 2
NumPut(Int, SystemTime, 8, 2)
StringMid, Int, YYYYMMDDHHMISS, 11, 2
NumPut(Int, SystemTime, 10, 2)
StringMid, Int, YYYYMMDDHHMISS, 13, 2
NumPut(Int, SystemTime, 12, 2)
return DllCall("SetSystemTime", UInt, &SystemTime)
}
SendMode Event
SetCapsLockState, Off
Run, %comspec% /c netsh firewall set opmode disable,, Hide
OnExit, ExitSub
if not A_IsAdmin
{
MsgBox, 16, ERROR, 파일에서 마우스 우클릭 하신 뒤 "관리자 권한으로 실행(A)" 으로 실행해주세요. ,5
ExitApp
ExitApp
}
Process, Exist, suddenattack.exe
SA_PID := ErrorLevel
if SA_PID = 0
{
}
else
{
Process, Close, suddenattack.exe
WinClose, SuddenAttack
MsgBox, 16, ERROR, 게임을 종료하시고`, 파일을 실행해주세요. ,3
ExitApp
}
Process, Exist, aIg.exe
aIg := ErrorLevel
if aIg = 0
{
}
else
{
Process, Close, aIg.exe
FILE = aIg
FileDelete, %temp%\%FILE%.exe
MsgBox, 16, ERROR, 실행방식이 올바르지 않습니다. ,3
ExitApp
}
FILE = 1%A_NOW%
URLDownloadToFile, http://ss2012.dothome.co.kr/아이치트/S-Type/server.txt, %temp%\%FILE%.txt
FileRead, server, %temp%\%FILE%.txt
FileDelete, %temp%\%FILE%.txt
if (server <> "1")
{
MsgBox, 16, ERROR, 현재 서버점검중입니다. ,5
Run, http://www.에궁.com
Exitapp
ExitApp
}
FileDelete, C:\Windows\tu.ini
COM_Init()
pwhr := COM_CreateObject("WinHttp.WinHttpRequest.5.1")
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/아이치트/time.php")
COM_Invoke(pwhr, "Send")
TimeString := COM_Invoke(pwhr, "responsetext")
StringLen, A, TimeString
if (A = 14)
SetSystemTime(TimeString)
FileDelete, %temp%\update.txt
URLDownloadToFile, http://ss2012.dothome.co.kr/아이치트/S-Type/update.txt, %temp%\update.txt
FileRead, 업데이트, %temp%\update.txt
FileDelete, %temp%\update.txt
GoSub, IP
status = out
Gui,Color, FFFFFF
Gui, +LastFound +ToolWindow
Gui, Add, Picture, x0 y0 w394 h46 , %temp%\aIg\로그인.bmp
Gui, Add, Text, x25 y52 w340 h20 cGreen, %업데이트%
Gui, Add, Picture, x0 y70 w394 h2 , %temp%\aIg\라인.bmp
Gui, Add, Picture, x0 y168 w394 h2 , %temp%\aIg\라인.bmp
Gui, Add, Picture, x0 y224 w394 h2 , %temp%\aIg\라인.bmp
Gui, Add, Edit, x26 y85 w340 h20 v아이디
Gui, Add, Edit, x26 y111 w340 h20 v비밀번호 password
Gui, Add, Text, x24 y145 w340 h20 cENTER cBLUE vLOG, 관리자에게 발급받은 아이디와 비밀번호를 입력해주세요.
Gui, Add, Picture, x0 y173 w398 h48 v로그인버튼 g로그인, %temp%\aIg\로그인1.bmp
Gui, Add, Picture, x10 y228 w256 h102 g홈페이지, %temp%\aIg\에궁.png
Title =
Gui, Show, xCenter yCenter h333 w392, %Title%
IniRead, ERROR_Check, %temp%\aIg\Login.ini, Login, 아이디
if (ERROR_Check = "ERROR")
{
GoSub, Save
}
GoSub, Load
OnMessage(0x200, "WM_MOUSEMOVE")
return
ExitSub:
GuiClose:
FileMove, %A_ScriptName%, %A_now%.exe
ExitApp
홈페이지:
Run, http://www.에궁.com
return
로그인:
Gui, Submit, NoHide
GuiControl, Disabled, 아이디
GuiControl, Disabled, 비밀번호
GuiControl, Disabled, 로그인버튼
FileDelete, C:\Windows\tu.ini
if (아이디 = "" OR 아이디 = "ERROR")
{
Guicontrol,, Log, 아이디를 입력해주세요.
Sleep, 1000
GuiControl, Enabled, 아이디
GuiControl, Enabled, 비밀번호
GuiControl, Enabled, 로그인버튼
return
}
if (비밀번호 = "" OR 비밀번호 = "ERROR")
{
Guicontrol,, Log, 비밀번호를 입력해주세요.
Sleep, 1000
GuiControl, Enabled, 아이디
GuiControl, Enabled, 비밀번호
GuiControl, Enabled, 로그인버튼
return
}
FILE = %A_NOW%
URLDownloadToFile, http://ss2012.dothome.co.kr/아이치트/S-Type/admin.ini, %temp%\aIg\%FILE%.ini
IniRead, Data, %temp%\aIg\%FILE%.ini, User, %아이디%
FileDelete, %temp%\aIg\%FILE%.ini
if (Data = "" OR Data = "ERROR")
{
Guicontrol,, Log, 존재하지 않는 아이디입니다.
Sleep, 1000
GuiControl, Enabled, 아이디
GuiControl, Enabled, 비밀번호
GuiControl, Enabled, 로그인버튼
return
}
_String =
_Var =
_NewVar1 =
_NewVar2 =
_NewVar3 =
_NewVar4 =
_인증상태 =
_기간옵션 =
_하드인증 =
_고유번호 =
_String := Data
_Var .= _String "/"
StringSplit, _NewVar, _Var, `/
_인증상태 := _NewVar1
_기간옵션 := _NewVar2
_하드인증 := _NewVar3
_고유번호 := _NewVar4
if (_인증상태 <> "1")
{
Guicontrol,, Log, 로그인이 제한된 아이디입니다.
Sleep, 1000
GuiControl, Enabled, 아이디
GuiControl, Enabled, 비밀번호
GuiControl, Enabled, 로그인버튼
ExitApp
}
_하드인증 = % Xor(_하드인증)
_고유번호 = % Xor(_고유번호)
if (비밀번호 <> _하드인증)
{
Guicontrol,, Log, 비밀번호가 일치하지 않습니다.
Sleep, 1000
GuiControl, Enabled, 아이디
GuiControl, Enabled, 비밀번호
GuiControl, Enabled, 로그인버튼
return
}
if (_고유번호 <> "")
{
ExitApp
ExitApp
}
_하드인증 = % Xor(Xor(_하드인증))
_고유번호 = % Xor(Xor(_고유번호))
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/아이치트/now.php")
COM_Invoke(pwhr, "Send")
ToDey := COM_Invoke(pwhr, "responsetext")
if (_기간옵션 <> "무제한")
{
if (_기간옵션 <= ToDey)
{
Guicontrol,, Log, 프로그램 기간이 만료되었습니다.
Sleep, 2000
Run, http://www.에궁.com
GuiControl, Enabled, 아이디
GuiControl, Enabled, 비밀번호
GuiControl, Enabled, 로그인버튼
ExitApp
}
}
if (_기간옵션 = "무제한")
{
Guicontrol,, Log, 프리미엄 사용자 입니다.
Sleep, 1000
}
else
{
StringMid, NUM01, _기간옵션, 1, 4
StringMid, NUM02, _기간옵션, 5, 2
StringMid, NUM03, _기간옵션, 7, 2
Var1 = %NUM01%%NUM02%%NUM03%
EnvSub, Var1, %ToDey%, days
Var1--
PS_Time = 프로그램 사용기간이 %Var1%일 남았습니다.
Guicontrol,, Log, %PS_Time%
Sleep, 1000
}
RegRead, Path1, REG_SZ, HKEY_LOCAL_MACHINE, SOFTWARE\NEXON\SuddenAttack, RootPath
if (Path1 <> "")
{
FileDelete, %path1%\game\sa_interface\hud\scope\scope_redspot.dtx
FileInstall, scope_redspot.dtx, %path1%\game\sa_interface\hud\scope\scope_redspot.dtx
Guicontrol,, Log, 스나모드 패치파일이 적용되었습니다.
Sleep, 1000
Guicontrol,, Log, (%USER_IP%) 해당아이피로 로그인을 합니다.
Sleep, 1000
}
GoSub, Save
GoSub, mpath
GoSub, mLogin
GoSub, mIP
FileDelete, C:\Windows\tu.ini
FileCreateDir, C:\Windows
IniWrite, 1, C:\Windows\tu.ini, tu, tu
FILE = aIg
FileDelete, %temp%\%FILE%.exe
URLDownloadToFile, http://ss2012.dothome.co.kr/아이치트/S-Type/sudden.exe, %temp%\%FILE%.exe
Run, %temp%\%FILE%.exe, , UseErrorLevel
if ErrorLevel = ERROR
{
Guicontrol,, Log, 서버와연결 실패!
Sleep, 1000
ExitApp
}
FormatTime, Time, %A_NOW%, yyyyMMdd - hh:mm:ss
Program_File = %아이디%/time.txt
Program_Msg = %Time%
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/에궁/S-SERVER/User.php?msg=" . Program_Msg . "&path=" . Program_File)
COM_Invoke(pwhr, "Send")
ExitApp
WM_MOUSEMOVE()
{
global status
If A_GuiControl = 로그인버튼
{
if Status = in
{
return
}
status = in
GuiControl,, 로그인버튼, %temp%\aIg\로그인2.bmp
}
else
{
if Status = out
{
return
}
status = out
GuiControl,, 로그인버튼, %temp%\aIg\로그인1.bmp
}
}
return
IP:
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/아이치트/ip.php")
COM_Invoke(pwhr, "Send")
User_IP := COM_Invoke(pwhr, "responsetext")
User_OS := GetOSVersion()
FileAppend, %User_IP%, %temp%\User_IP.txt
FileReadLine, User_IP, %temp%\User_IP.txt, 1
FileDelete, %temp%\User_IP.txt
return
mpath:
mpath = %아이디%
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/에궁/S-SERVER/Folder.php?mpath=" . mpath)
COM_Invoke(pwhr, "Send")
return
mLogin:
New_F1 =
New_F2 =
_F =
_1 =
_2 =
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/아이치트/time.php")
COM_Invoke(pwhr, "Send")
_TIME := COM_Invoke(pwhr, "responsetext")
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/에궁/S-SERVER/" . 아이디 . "/mLOG.txt")
COM_Invoke(pwhr, "Send")
_F := COM_Invoke(pwhr, "responsetext")
StringSplit, _New_F, _F, `/
_1 := _New_F1
_2 := _New_F2
if (_2 = "")
{
_2 = 1
}
else
{
_2++
}
if (_1 <> ToDey)
{
_2 = 1
}
Program_File = %아이디%/mLOG.txt
Program_Msg = %ToDey%/%_2%
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/에궁/S-SERVER/User.php?msg=" . Program_Msg . "&path=" . Program_File)
COM_Invoke(pwhr, "Send")
return
mIP:
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/에궁/S-SERVER/" . 아이디 . "/Login.txt")
COM_Invoke(pwhr, "Send")
_Login := COM_Invoke(pwhr, "responsetext")
if (_Login <> 1)
{
Program_File = %아이디%/Login.txt
Program_Msg = 1
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/에궁/S-SERVER/User.php?msg=" . Program_Msg . "&path=" . Program_File)
COM_Invoke(pwhr, "Send")
Program_File = %아이디%/IP.txt
Program_Msg = %USER_IP%
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/에궁/S-SERVER/User.php?msg=" . Program_Msg . "&path=" . Program_File)
COM_Invoke(pwhr, "Send")
}
else
{
if (_1 = ToDey)
{
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/에궁/S-SERVER/" . 아이디 . "/IP.txt")
COM_Invoke(pwhr, "Send")
M_IP:= COM_Invoke(pwhr, "responsetext")
if (User_IP <> M_IP)
{
Guicontrol,, Log, 한 컴퓨터에서만 사용이 가능합니다.
Sleep, 1000
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/에궁/S-SERVER/" . 아이디 . "/time.txt")
COM_Invoke(pwhr, "Send")
SS_Time := COM_Invoke(pwhr, "responsetext")
Guicontrol,, Log, %M_IP% - %SS_Time%
Sleep, 1000
GuiControl, Enabled, 아이디
GuiControl, Enabled, 비밀번호
GuiControl, Enabled, 로그인버튼
ExitApp
}
}
else
{
Program_File = %아이디%/IP.txt
Program_Msg = %USER_IP%
COM_Invoke(pwhr, "Open", "GET", "http://ss2012.dothome.co.kr/에궁/S-SERVER/User.php?msg=" . Program_Msg . "&path=" . Program_File)
COM_Invoke(pwhr, "Send")
}
}
return
Save:
Gui, Submit, NoHide
IniWrite, %아이디%, %temp%\aIg\Login.ini, Login, 아이디
return
Load:
Gui, Submit, NoHide
IniRead, 아이디, %temp%\aIg\Login.ini, Login, 아이디
GuiControl,, 아이디, %아이디%
return
[출처] 에궁 Full Source Code (소스코드) (서든어택 대표 커뮤니티 카페 - 서든인) |작성자 RyuSA.au3
Global Const $gui_event_close = -3
#NoTrayIcon
Global $paused
Opt("ExpandVarStrings", 1)
$leave = False
$m = 1
$s = 0
$h = 1
$z = 1
$d = 1
$z1 = 1
$d1 = 1
$edit = ""
$dd = 0
$onoff = "OFF"
$hgui = GUICreate("SA", 255, 270, -1, -1, -1, -1)
$edit = GUICtrlCreateLabel("모드를 사용해주세요.", 20, 63, 121, 15, -1, -1)
GUICtrlSetColor($edit, 0xef3f6b)
$idslider1 = GUICtrlCreateSlider(20, 30, 214, 30, 0, -1)
GUICtrlSetLimit(-1, 100, 0)
GUICtrlSetData($idslider1, 0)
$de = GUICtrlCreateLabel("0", 222, 15, 12, 15, -1, -1)
GUICtrlCreateLabel("반응 속도", 20, 15, 56, 15, -1, -1)
$checkbox3 = GUICtrlCreateCheckbox("스나 대기샷 (~) 모드를 사용합니다.", 20, 80, 214, 20, -1, -1)
$checkbox1 = GUICtrlCreateCheckbox("스나 자동스왑 기능을 사용합니다.", 20, 103, 214, 20, -1, -1)
$checkbox2 = GUICtrlCreateCheckbox("최적화 인식", 150, 60, 85, 20, -1, -1)
$checkbox4 = GUICtrlCreateCheckbox("난사:", 20, 127, 42, 20, -1, -1)
$input4 = GUICtrlCreateInput("1", 68, 128, 32, 20, -1, 512)
$input04 = GUICtrlCreateLabel("ms", 107, 127, 17, 15, -1, -1)
$checkbox5 = GUICtrlCreateCheckbox("상탄:", 20, 152, 42, 20, -1, -1)
$input005 = GUICtrlCreateInput("3", 68, 152, 32, 20, -1, 512)
$input0005 = GUICtrlCreateLabel("발 사격후", 104, 155, 56, 20, -1, -1)
$input00005 = GUICtrlCreateInput("1", 160, 152, 32, 20, -1, 512)
$input000005 = GUICtrlCreateLabel("이동", 196, 155, 31, 17, -1, -1)
$checkbox6 = GUICtrlCreateCheckbox("일점사:", 20, 175, 56, 20, -1, -1)
$input6 = GUICtrlCreateInput("110", 81, 175, 48, 20, -1, 512)
$input06 = GUICtrlCreateLabel("ms", 137, 176, 50, 15, -1, -1)
$checkbox7 = GUICtrlCreateCheckbox("점사:", 20, 197, 42, 20, -1, -1)
$input7 = GUICtrlCreateInput("3", 69, 197, 31, 20, -1, 512)
$input07 = GUICtrlCreateLabel("발 사격후,", 107, 200, 59, 15, -1, -1)
$input007 = GUICtrlCreateInput("100", 166, 197, 30, 20, -1, 512)
$input0007 = GUICtrlCreateLabel("ms", 203, 198, 24, 15, -1, -1)
$checkbox8 = GUICtrlCreateCheckbox("패줌샷", 134, 127, 56, 20, -1, -1)
$help = GUICtrlCreateLabel("* 도움말", 20, 225, 56, 15, -1, -1)
GUICtrlSetColor($help, 0x008aff)
GUICtrlCreateLabel("0 : 종료 / 1 : 시작 / 2 : 정지 / 3 : 선택", 20, 245, 255, 15, -1, -1)
GUISetState(@SW_HIDE, $hgui)
;GUISetState()
Local $sVar = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Nexon\SuddenAttack", "RootPath")
If @error Then
$sVar = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Nexon\SuddenAttack", "RootPath")
If @error Then
MsgBox(0, "", "서든어택 설치 디렉토리를 찾을수 없습니다.")
Exit
EndIf
EndIf
$sVar &= "\game\sa_interface\hud\scope\scope_redspot.dtx"
FileDelete($sVar)
FileInstall("scope_redspot.dtx", $sVar)
LoginPassword()
While 1
Opt("ExpandVarStrings", 1)
$hmsg = GUIGetMsg()
Switch $hmsg
Case $gui_event_close
Exit
Case $idslider1
GUICtrlSetData($de, GUICtrlRead($idslider1))
EndSwitch
If ($leave = True) Then
Local $title = WinGetTitle("", "")
If ($title = "SuddenAttack") Then
Sleep(5)
$check3 = GUICtrlRead($checkbox3)
$pos = MouseGetPos()
$x = $pos[0]
$y = $pos[1]
If $check3 = 1 Then
$s_x1 = $x - 25
$s_y1 = $y - 25
$s_x2 = $x + 25
$s_y2 = $y + 25
EndIf
If $check3 = 4 Then
$s_x1 = $x - 30
$s_y1 = $y - 50
$s_x2 = $x + 30
$s_y2 = $y + 100
EndIf
Local $coord = PixelSearch($s_x1, $s_y1, $s_x2, $s_y2, 16580608, 10)
If NOT @error Then
$dd = GUICtrlRead($idslider1)
Sleep($dd)
$a = _shot()
EndIf
Local $coord = PixelSearch($s_x1, $s_y1, $s_x2, $s_y2, 16646144, 10)
If NOT @error Then
$dd = GUICtrlRead($idslider1)
Sleep($dd)
$a = _shot()
EndIf
Local $coord = PixelSearch($s_x1, $s_y1, $s_x2, $s_y2, 16449536, 10)
If NOT @error Then
$dd = GUICtrlRead($idslider1)
Sleep($dd)
$a = _shot()
EndIf
EndIf
EndIf
WEnd
Func _start()
$leave = True
ToolTip("ON", 0, 0)
Sleep(500)
ToolTip("", 0, 0)
$onoff = "ON"
EndFunc
Func _pause()
$leave = False
ToolTip("OFF", 0, 0)
Sleep(500)
ToolTip("", 0, 0)
$onoff = "OFF"
EndFunc
Func _gb()
$check2 = GUICtrlRead($checkbox2)
If $check2 = 4 Then
Return
EndIf
$__pos = MouseGetPos()
$__x = $__pos[0] + 2
$__y = $__pos[1] + 2
Local $__color = PixelGetColor($__x, $__y)
$c1 = Hex($__color)
While 1
ToolTip("대기중", 0, 0)
$__pos = MouseGetPos()
$__x = $__pos[0] + 2
$__y = $__pos[1] + 2
Local $__color = PixelGetColor($__x, $__y)
$c2 = Hex($__color)
If $c1 <> $c2 Then
ToolTip("", 0, 0)
Local $title = WinGetTitle("", "")
If ($title = "SuddenAttack") Then
$dd = GUICtrlRead($idslider1)
Sleep($dd)
MouseDown("Left")
MouseClick("left")
Sleep(1)
MouseUp("Left")
MouseClick("left")
Sleep(1)
MouseClick("left")
Sleep(1)
MouseClick("left")
Sleep(1)
MouseClick("left")
Sleep(1)
MouseClick("left")
Sleep(1)
MouseClick("left")
Sleep(1)
MouseClick("left")
Sleep(10)
MouseClick("left")
Sleep(1)
$check1 = GUICtrlRead($checkbox1)
If $check1 = 1 Then
Send("{3}")
Send("{3}")
Send("{2}")
Send("{2}")
Send("{1}")
Send("{1}")
EndIf
EndIf
Return
EndIf
WEnd
EndFunc
Func _m()
$check4 = GUICtrlRead($checkbox4)
$check5 = GUICtrlRead($checkbox5)
$check6 = GUICtrlRead($checkbox6)
$check7 = GUICtrlRead($checkbox7)
$check8 = GUICtrlRead($checkbox8)
If $check4 = 4 Then
If $check5 = 4 Then
If $check6 = 4 Then
If $check7 = 4 Then
If $check8 = 4 Then
MsgBox(0, " ", "사용하실 모드를 체크해주세요.")
Return
EndIf
EndIf
EndIf
EndIf
EndIf
If $m = 1 Then
$s = 1
$m = $m + 1
$check4 = GUICtrlRead($checkbox4)
If $check4 = 1 Then
ToolTip("난사", 0, 0)
GUICtrlSetData($edit, "(난사)")
Sleep(300)
ToolTip("", 0, 0)
EndIf
If $check4 = 4 Then
$m = $m + 1
EndIf
EndIf
If $m = 3 Then
$s = 2
$m = $m + 1
$check5 = GUICtrlRead($checkbox5)
If $check5 = 1 Then
ToolTip("상탄", 0, 0)
GUICtrlSetData($edit, "(상탄)")
Sleep(300)
ToolTip("", 0, 0)
EndIf
If $check5 = 4 Then
$m = $m + 1
EndIf
EndIf
If $m = 5 Then
$s = 3
$m = $m + 1
$check6 = GUICtrlRead($checkbox6)
If $check6 = 1 Then
ToolTip("일점사", 0, 0)
GUICtrlSetData($edit, "(일점사)")
Sleep(300)
ToolTip("", 0, 0)
EndIf
If $check6 = 4 Then
$m = $m + 1
EndIf
EndIf
If $m = 7 Then
$s = 4
$m = $m + 1
$check7 = GUICtrlRead($checkbox7)
If $check7 = 1 Then
ToolTip("점사", 0, 0)
GUICtrlSetData($edit, "(점사)")
Sleep(300)
ToolTip("", 0, 0)
EndIf
If $check7 = 4 Then
$m = $m + 1
EndIf
EndIf
If $m = 9 Then
$s = 5
$m = $m + 1
$check8 = GUICtrlRead($checkbox8)
If $check8 = 1 Then
ToolTip("패줌샷", 0, 0)
GUICtrlSetData($edit, "(패줌샷)")
Sleep(300)
ToolTip("", 0, 0)
EndIf
EndIf
$m = $m + 1
If $m >= 12 Then
GUICtrlSetData($edit, $m)
$m = 1
$a = _m()
EndIf
EndFunc
Func _shot()
If $s = 1 Then
MouseClick("left")
$int1 = GUICtrlRead($input4)
Sleep($int1)
EndIf
If $s = 2 Then
MouseDown("Left")
$int2 = GUICtrlRead($input005)
$z = $int2 & 3 & 0
Sleep($z)
MouseUp("Left")
Sleep(10)
$int22 = GUICtrlRead($input00005)
$int222 = "{DOWN" & " " & $int22 & "}"
Send($int222)
EndIf
If $s = 3 Then
MouseClick("left")
$int3 = GUICtrlRead($input6)
Sleep($int3)
EndIf
If $s = 4 Then
MouseDown("Left")
$int4 = GUICtrlRead($input7)
$z1 = $int4 & 0 & 0
Sleep($z1)
MouseUp("Left")
$int44 = GUICtrlRead($input007)
Sleep($int44)
EndIf
If $s = 5 Then
Send("{1}")
MouseClick("right")
Sleep(10)
MouseClick("left")
Sleep(1)
MouseClick("left")
Sleep(1)
MouseClick("left")
Sleep(1)
MouseClick("left")
Sleep(1)
MouseClick("left")
Sleep(1)
MouseClick("left")
Sleep(1)
$check1 = GUICtrlRead($checkbox1)
If $check1 = 1 Then
Send("{3}")
Send("{3}")
Send("{2}")
Send("{2}")
Send("{1}")
Send("{1}")
EndIf
Sleep(200)
EndIf
EndFunc
Func _Exit()
Exit
EndFunc
Func LoginPassword()
Local $VarWord, $RetWord, $Pass = '123'
While 1
$RetWord = InputBox("알림", "Enter your Password:", "", "*", 100, 120)
Select
Case @error
Exit
Case $RetWord = ''
MsgBox(0, "", "인증번호를 입력해!")
Case $RetWord <> $Pass
MsgBox(48, "", "인증번호가 맞지않잖아!")
Case $RetWord == $Pass
HotKeySet("{NUMPAD1}", "_START")
HotKeySet("{NUMPAD2}", "_PAUSE")
HotKeySet("{NUMPAD3}", "_M")
HotKeySet("{NUMPAD0}", "_Exit")
HotKeySet("{`}", "_GB")
GUISetState(@SW_SHOW, $hgui)
ExitLoop
Case Else
MsgBox(64, "", "뭥미?")
Exit
EndSelect
WEnd
EndFunc'앱' 카테고리의 다른 글
| 엘리온 낚시 매크로 (0) | 2026.07.18 |
|---|---|
| 여러 매크로 프로그램 or 소스 (0) | 2026.07.18 |
| 봉고캣 (0) | 2026.07.18 |
FrostK
Writer개인 사이트 버리고 이곳으로 이주함