首页
社区
课程
招聘
Autoit 3.3.6.1 反编译
发表于: 2011-7-2 01:46 7076

Autoit 3.3.6.1 反编译

2011-7-2 01:46
7076
哪位大大对AU3程序反编译的比较精通交流下经验!

这个我进行跟踪只能还原部分脚本内容! 有什么方法能完整的还原代码吗?

下面附件是该AU3程序与我还原出来的部分代码! 各位大大别藏着掖着了,分享下经验

系统获取网卡速度程序,希望高手,帮忙反编译一下,学习下。

谢谢!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
程式碼太長了,先列出前三百行,有需要完整的再和我聯絡吧

[SIZE="1"]
#NoTrayIcon
#Region
#AutoIt3Wrapper_icon=ico.ico
#AutoIt3Wrapper_outfile=NetSpeed For API.exe
#EndRegion
Global Const $GMEM_FIXED = 0 
Global Const $GMEM_MOVEABLE = 2 
Global Const $GMEM_NOCOMPACT = 16 
Global Const $GMEM_NODISCARD = 32 
Global Const $GMEM_ZEROINIT = 64 
Global Const $GMEM_MODIFY = 128 
Global Const $GMEM_DISCARDABLE = 256 
Global Const $GMEM_NOT_BANKED = 4096 
Global Const $GMEM_SHARE = 8192 
Global Const $GMEM_DDESHARE = 8192 
Global Const $GMEM_NOTIFY = 16384 
Global Const $GMEM_LOWER = 4096 
Global Const $GMEM_VALID_FLAGS = 32626 
Global Const $GMEM_INVALID_HANDLE = 32768 
Global Const $GPTR = $GMEM_FIXED + $GMEM_ZEROINIT 
Global Const $GHND = $GMEM_MOVEABLE + $GMEM_ZEROINIT 
Global Const $MEM_COMMIT = 4096 
Global Const $MEM_RESERVE = 8192 
Global Const $MEM_TOP_DOWN = 1048576 
Global Const $MEM_SHARED = 134217728 
Global Const $PAGE_NOACCESS = 1 
Global Const $PAGE_READONLY = 2 
Global Const $PAGE_READWRITE = 4 
Global Const $PAGE_EXECUTE = 16 
Global Const $PAGE_EXECUTE_READ = 32 
Global Const $PAGE_EXECUTE_READWRITE = 64 
Global Const $PAGE_GUARD = 256 
Global Const $PAGE_NOCACHE = 512 
Global Const $MEM_DECOMMIT = 16384 
Global Const $MEM_RELEASE = 32768 
Global Const $TAGPOINT = "long X;long Y" 
Global Const $TAGRECT = "long Left;long Top;long Right;long Bottom" 
Global Const $TAGSIZE = "long X;long Y" 
Global Const $TAGMARGINS = "int cxLeftWidth;int cxRightWidth;int cyTopHeight;int cyBottomHeight" 
Global Const $TAGFILETIME = "dword Lo;dword Hi" 
Global Const $TAGSYSTEMTIME = "word Year;word Month;word Dow;word Day;word Hour;word Minute;word Second;word MSeconds" 
Global Const $TAGTIME_ZONE_INFORMATION = "long Bias;wchar StdName[32];word StdDate[8];long StdBias;wchar DayName[32];word DayDate[8];long DayBias" 
Global Const $TAGNMHDR = "hwnd hWndFrom;uint_ptr IDFrom;INT Code" 
Global Const $TAGCOMBOBOXEXITEM = "uint Mask;int_ptr Item;ptr Text;int TextMax;int Image;int SelectedImage;int OverlayImage;" & "int Indent;lparam Param" 
Global Const $TAGNMCBEDRAGBEGIN = $TAGNMHDR & ";int ItemID;ptr szText" 
Global Const $TAGNMCBEENDEDIT = $TAGNMHDR & ";bool fChanged;int NewSelection;ptr szText;int Why" 
Global Const $TAGNMCOMBOBOXEX = $TAGNMHDR & ";uint Mask;int_ptr Item;ptr Text;int TextMax;int Image;" & "int SelectedImage;int OverlayImage;int Indent;lparam Param" 
Global Const $TAGDTPRANGE = "word MinYear;word MinMonth;word MinDOW;word MinDay;word MinHour;word MinMinute;" & "word MinSecond;word MinMSecond;word MaxYear;word MaxMonth;word MaxDOW;word MaxDay;word MaxHour;" & "word MaxMinute;word MaxSecond;word MaxMSecond;bool MinValid;bool MaxValid" 
Global Const $TAGNMDATETIMECHANGE = $TAGNMHDR & ";dword Flag;" & $TAGSYSTEMTIME 
Global Const $TAGNMDATETIMEFORMAT = $TAGNMHDR & ";ptr Format;" & $TAGSYSTEMTIME & ";ptr pDisplay;wchar Display[64]" 
Global Const $TAGNMDATETIMEFORMATQUERY = $TAGNMHDR & ";ptr Format;long SizeX;long SizeY" 
Global Const $TAGNMDATETIMEKEYDOWN = $TAGNMHDR & ";int VirtKey;ptr Format;" & $TAGSYSTEMTIME 
Global Const $TAGNMDATETIMESTRING = $TAGNMHDR & ";ptr UserString;" & $TAGSYSTEMTIME & ";dword Flags" 
Global Const $TAGEVENTLOGRECORD = "dword Length;dword Reserved;dword RecordNumber;dword TimeGenerated;dword TimeWritten;dword EventID;" & "word EventType;word NumStrings;word EventCategory;word ReservedFlags;dword ClosingRecordNumber;dword StringOffset;" & "dword UserSidLength;dword UserSidOffset;dword DataLength;dword DataOffset" 
Global Const $TAGGDIPBITMAPDATA = "uint Width;uint Height;int Stride;int Format;ptr Scan0;uint_ptr Reserved" 
Global Const $TAGGDIPENCODERPARAM = "byte GUID[16];dword Count;dword Type;ptr Values" 
Global Const $TAGGDIPENCODERPARAMS = "dword Count;byte Params[0]" 
Global Const $TAGGDIPRECTF = "float X;float Y;float Width;float Height" 
Global Const $TAGGDIPSTARTUPINPUT = "uint Version;ptr Callback;bool NoThread;bool NoCodecs" 
Global Const $TAGGDIPSTARTUPOUTPUT = "ptr HookProc;ptr UnhookProc" 
Global Const $TAGGDIPIMAGECODECINFO = "byte CLSID[16];byte FormatID[16];ptr CodecName;ptr DllName;ptr FormatDesc;ptr FileExt;" & "ptr MimeType;dword Flags;dword Version;dword SigCount;dword SigSize;ptr SigPattern;ptr SigMask" 
Global Const $TAGGDIPPENCODERPARAMS = "dword Count;byte Params[0]" 
Global Const $TAGHDITEM = "uint Mask;int XY;ptr Text;handle hBMP;int TextMax;int Fmt;lparam Param;int Image;int Order;uint Type;ptr pFilter;uint State" 
Global Const $TAGNMHDDISPINFO = $TAGNMHDR & ";int Item;uint Mask;ptr Text;int TextMax;int Image;lparam lParam" 
Global Const $TAGNMHDFILTERBTNCLICK = $TAGNMHDR & ";int Item;" & $TAGRECT 
Global Const $TAGNMHEADER = $TAGNMHDR & ";int Item;int Button;ptr pItem" 
Global Const $TAGGETIPADDRESS = "byte Field4;byte Field3;byte Field2;byte Field1" 
Global Const $TAGNMIPADDRESS = $TAGNMHDR & ";int Field;int Value" 
Global Const $TAGLVFINDINFO = "uint Flags;ptr Text;lparam Param;" & $TAGPOINT & ";uint Direction" 
Global Const $TAGLVHITTESTINFO = $TAGPOINT & ";uint Flags;int Item;int SubItem" 
Global Const $TAGLVITEM = "uint Mask;int Item;int SubItem;uint State;uint StateMask;ptr Text;int TextMax;int Image;lparam Param;" & "int Indent;int GroupID;uint Columns;ptr pColumns" 
Global Const $TAGNMLISTVIEW = $TAGNMHDR & ";int Item;int SubItem;uint NewState;uint OldState;uint Changed;" & "long ActionX;long ActionY;lparam Param" 
Global Const $TAGNMLVCUSTOMDRAW = $TAGNMHDR & ";dword dwDrawStage;handle hdc;long Left;long Top;long Right;long Bottom;" & "dword_ptr dwItemSpec;uint uItemState;lparam lItemlParam" & ";dword clrText;dword clrTextBk;int iSubItem;dword dwItemType;dword clrFace;int iIconEffect;" & "int iIconPhase;int iPartId;int iStateId;long TextLeft;long TextTop;long TextRight;long TextBottom;uint uAlign" 
Global Const $TAGNMLVDISPINFO = $TAGNMHDR & ";" & $TAGLVITEM 
Global Const $TAGNMLVFINDITEM = $TAGNMHDR & ";" & $TAGLVFINDINFO 
Global Const $TAGNMLVGETINFOTIP = $TAGNMHDR & ";dword Flags;ptr Text;int TextMax;int Item;int SubItem;lparam lParam" 
Global Const $TAGNMITEMACTIVATE = $TAGNMHDR & ";int Index;int SubItem;uint NewState;uint OldState;uint Changed;" & $TAGPOINT & ";lparam lParam;uint KeyFlags" 
Global Const $TAGNMLVKEYDOWN = $TAGNMHDR & ";align 1;word VKey;uint Flags" 
Global Const $TAGNMLVSCROLL = $TAGNMHDR & ";int DX;int DY" 
Global Const $TAGMCHITTESTINFO = "uint Size;" & $TAGPOINT & ";uint Hit;" & $TAGSYSTEMTIME 
Global Const $TAGMCMONTHRANGE = "word MinYear;word MinMonth;word MinDOW;word MinDay;word MinHour;word MinMinute;word MinSecond;" & "word MinMSeconds;word MaxYear;word MaxMonth;word MaxDOW;word MaxDay;word MaxHour;word MaxMinute;word MaxSecond;" & "word MaxMSeconds;short Span" 
Global Const $TAGMCRANGE = "word MinYear;word MinMonth;word MinDOW;word MinDay;word MinHour;word MinMinute;word MinSecond;" & "word MinMSeconds;word MaxYear;word MaxMonth;word MaxDOW;word MaxDay;word MaxHour;word MaxMinute;word MaxSecond;" & "word MaxMSeconds;short MinSet;short MaxSet" 
Global Const $TAGMCSELRANGE = "word MinYear;word MinMonth;word MinDOW;word MinDay;word MinHour;word MinMinute;word MinSecond;" & "word MinMSeconds;word MaxYear;word MaxMonth;word MaxDOW;word MaxDay;word MaxHour;word MaxMinute;word MaxSecond;" & "word MaxMSeconds" 
Global Const $TAGNMDAYSTATE = $TAGNMHDR & ";" & $TAGSYSTEMTIME & ";int DayState;ptr pDayState" 
Global Const $TAGNMSELCHANGE = $TAGNMHDR & ";word BegYear;word BegMonth;word BegDOW;word BegDay;" & "word BegHour;word BegMinute;word BegSecond;word BegMSeconds;word EndYear;word EndMonth;word EndDOW;" & "word EndDay;word EndHour;word EndMinute;word EndSecond;word EndMSeconds" 
Global Const $TAGNMOBJECTNOTIFY = $TAGNMHDR & ";int Item;ptr piid;ptr pObject;long Result" 
Global Const $TAGNMTCKEYDOWN = $TAGNMHDR & ";word VKey;uint Flags" 
Global Const $TAGTVITEM = "uint Mask;handle hItem;uint State;uint StateMask;ptr Text;int TextMax;int Image;int SelectedImage;" & "int Children;lparam Param" 
Global Const $TAGTVITEMEX = $TAGTVITEM & ";int Integral" 
Global Const $TAGNMTREEVIEW = $TAGNMHDR & ";uint Action;uint OldMask;handle OldhItem;uint OldState;uint OldStateMask;" & "ptr OldText;int OldTextMax;int OldImage;int OldSelectedImage;int OldChildren;lparam OldParam;uint NewMask;handle NewhItem;" & "uint NewState;uint NewStateMask;ptr NewText;int NewTextMax;int NewImage;int NewSelectedImage;int NewChildren;" & "lparam NewParam;long PointX;long PointY" 
Global Const $TAGNMTVCUSTOMDRAW = $TAGNMHDR & ";dword DrawStage;handle HDC;long Left;long Top;long Right;long Bottom;" & "dword_ptr ItemSpec;uint ItemState;lparam ItemParam;dword ClrText;dword ClrTextBk;int Level" 
Global Const $TAGNMTVDISPINFO = $TAGNMHDR & ";" & $TAGTVITEM 
Global Const $TAGNMTVGETINFOTIP = $TAGNMHDR & ";ptr Text;int TextMax;handle hItem;lparam lParam" 
Global Const $TAGTVHITTESTINFO = $TAGPOINT & ";uint Flags;handle Item" 
Global Const $TAGNMTVKEYDOWN = $TAGNMHDR & ";word VKey;uint Flags" 
Global Const $TAGNMMOUSE = $TAGNMHDR & ";dword_ptr ItemSpec;dword_ptr ItemData;" & $TAGPOINT & ";lparam HitInfo" 
Global Const $TAGTOKEN_PRIVILEGES = "dword Count;int64 LUID;dword Attributes" 
Global Const $TAGIMAGEINFO = "handle hBitmap;handle hMask;int Unused1;int Unused2;" & $TAGRECT 
Global Const $TAGMENUINFO = "dword Size;INT Mask;dword Style;uint YMax;handle hBack;dword ContextHelpID;ulong_ptr MenuData" 
Global Const $TAGMENUITEMINFO = "uint Size;uint Mask;uint Type;uint State;uint ID;handle SubMenu;handle BmpChecked;handle BmpUnchecked;" & "ulong_ptr ItemData;ptr TypeData;uint CCH;handle BmpItem" 
Global Const $TAGREBARBANDINFO = "uint cbSize;uint fMask;uint fStyle;dword clrFore;dword clrBack;ptr lpText;uint cch;" & "int iImage;hwnd hwndChild;uint cxMinChild;uint cyMinChild;uint cx;handle hbmBack;uint wID;uint cyChild;uint cyMaxChild;" & "uint cyIntegral;uint cxIdeal;lparam lParam;uint cxHeader" 
Global Const $TAGNMREBARAUTOBREAK = $TAGNMHDR & ";uint uBand;uint wID;lparam lParam;uint uMsg;uint fStyleCurrent;bool fAutoBreak" 
Global Const $TAGNMRBAUTOSIZE = $TAGNMHDR & ";bool fChanged;long TargetLeft;long TargetTop;long TargetRight;long TargetBottom;" & "long ActualLeft;long ActualTop;long ActualRight;long ActualBottom" 
Global Const $TAGNMREBAR = $TAGNMHDR & ";dword dwMask;uint uBand;uint fStyle;uint wID;laram lParam" 
Global Const $TAGNMREBARCHEVRON = $TAGNMHDR & ";uint uBand;uint wID;lparam lParam;" & $TAGRECT & ";lparam lParamNM" 
Global Const $TAGNMREBARCHILDSIZE = $TAGNMHDR & ";uint uBand;uint wID;long CLeft;long CTop;long CRight;long CBottom;" & "long BLeft;long BTop;long BRight;long BBottom" 
Global Const $TAGCOLORSCHEME = "dword Size;dword BtnHighlight;dword BtnShadow" 
Global Const $TAGNMTOOLBAR = $TAGNMHDR & ";int iItem;" & "int iBitmap;int idCommand;byte fsState;byte fsStyle;align;dword_ptr dwData;int_ptr iString" & ";int cchText;ptr pszText;" & $TAGRECT 
Global Const $TAGNMTBHOTITEM = $TAGNMHDR & ";int idOld;int idNew;dword dwFlags" 
Global Const $TAGTBBUTTON = "int Bitmap;int Command;byte State;byte Style;align;dword_ptr Param;int_ptr String" 
Global Const $TAGTBBUTTONINFO = "uint Size;dword Mask;int Command;int Image;byte State;byte Style;word CX;dword_ptr Param;ptr Text;int TextMax" 
Global Const $TAGNETRESOURCE = "dword Scope;dword Type;dword DisplayType;dword Usage;ptr LocalName;ptr RemoteName;ptr Comment;ptr Provider" 
Global Const $TAGOVERLAPPED = "ulong_ptr Internal;ulong_ptr InternalHigh;dword Offset;dword OffsetHigh;handle hEvent" 
Global Const $TAGOPENFILENAME = "dword StructSize;hwnd hwndOwner;handle hInstance;ptr lpstrFilter;ptr lpstrCustomFilter;" & "dword nMaxCustFilter;dword nFilterIndex;ptr lpstrFile;dword nMaxFile;ptr lpstrFileTitle;dword nMaxFileTitle;" & "ptr lpstrInitialDir;ptr lpstrTitle;dword Flags;word nFileOffset;word nFileExtension;ptr lpstrDefExt;lparam lCustData;" & "ptr lpfnHook;ptr lpTemplateName;ptr pvReserved;dword dwReserved;dword FlagsEx" 
Global Const $TAGBITMAPINFO = "dword Size;long Width;long Height;word Planes;word BitCount;dword Compression;dword SizeImage;" & "long XPelsPerMeter;long YPelsPerMeter;dword ClrUsed;dword ClrImportant;dword RGBQuad" 
Global Const $TAGBLENDFUNCTION = "byte Op;byte Flags;byte Alpha;byte Format" 
Global Const $TAGGUID = "dword Data1;word Data2;word Data3;byte Data4[8]" 
Global Const $TAGWINDOWPLACEMENT = "uint length; uint flags;uint showCmd;long ptMinPosition[2];long ptMaxPosition[2];long rcNormalPosition[4]" 
Global Const $TAGWINDOWPOS = "hwnd hWnd;hwnd InsertAfter;int X;int Y;int CX;int CY;uint Flags" 
Global Const $TAGSCROLLINFO = "uint cbSize;uint fMask;int  nMin;int  nMax;uint nPage;int  nPos;int  nTrackPos" 
Global Const $TAGSCROLLBARINFO = "dword cbSize;" & $TAGRECT & ";int dxyLineButton;int xyThumbTop;" & "int xyThumbBottom;int reserved;dword rgstate[6]" 
Global Const $TAGLOGFONT = "long Height;long Width;long Escapement;long Orientation;long Weight;byte Italic;byte Underline;" & "byte Strikeout;byte CharSet;byte OutPrecision;byte ClipPrecision;byte Quality;byte PitchAndFamily;wchar FaceName[32]" 
Global Const $TAGKBDLLHOOKSTRUCT = "dword vkCode;dword scanCode;dword flags;dword time;ulong_ptr dwExtraInfo" 
Global Const $TAGPROCESS_INFORMATION = "handle hProcess;handle hThread;dword ProcessID;dword ThreadID" 
Global Const $TAGSTARTUPINFO = "dword Size;ptr Reserved1;ptr Desktop;ptr Title;dword X;dword Y;dword XSize;dword YSize;dword XCountChars;" & "dword YCountChars;dword FillAttribute;dword Flags;word ShowWindow;word Reserved2;ptr Reserved3;handle StdInput;" & "handle StdOutput;handle StdError" 
Global Const $TAGSECURITY_ATTRIBUTES = "dword Length;ptr Descriptor;bool InheritHandle" 
Global Const $TAGWIN32_FIND_DATA = "dword dwFileAttributes; dword ftCreationTime[2]; dword ftLastAccessTime[2]; dword ftLastWriteTime[2]; dword nFileSizeHigh; dword nFileSizeLow; dword dwReserved0; dword dwReserved1; wchar cFileName[260]; wchar cAlternateFileName[14]" 
Global Const $PROCESS_TERMINATE = 1 
Global Const $PROCESS_CREATE_THREAD = 2 
Global Const $PROCESS_SET_SESSIONID = 4 
Global Const $PROCESS_VM_OPERATION = 8 
Global Const $PROCESS_VM_READ = 16 
Global Const $PROCESS_VM_WRITE = 32 
Global Const $PROCESS_DUP_HANDLE = 64 
Global Const $PROCESS_CREATE_PROCESS = 128 
Global Const $PROCESS_SET_QUOTA = 256 
Global Const $PROCESS_SET_INFORMATION = 512 
Global Const $PROCESS_QUERY_INFORMATION = 1024 
Global Const $PROCESS_SUSPEND_RESUME = 2048 
Global Const $PROCESS_ALL_ACCESS = 2035711 
Global Const $ERROR_NO_TOKEN = 1008 
Global Const $SE_ASSIGNPRIMARYTOKEN_NAME = "SeAssignPrimaryTokenPrivilege" 
Global Const $SE_AUDIT_NAME = "SeAuditPrivilege" 
Global Const $SE_BACKUP_NAME = "SeBackupPrivilege" 
Global Const $SE_CHANGE_NOTIFY_NAME = "SeChangeNotifyPrivilege" 
Global Const $SE_CREATE_GLOBAL_NAME = "SeCreateGlobalPrivilege" 
Global Const $SE_CREATE_PAGEFILE_NAME = "SeCreatePagefilePrivilege" 
Global Const $SE_CREATE_PERMANENT_NAME = "SeCreatePermanentPrivilege" 
Global Const $SE_CREATE_TOKEN_NAME = "SeCreateTokenPrivilege" 
Global Const $SE_DEBUG_NAME = "SeDebugPrivilege" 
Global Const $SE_ENABLE_DELEGATION_NAME = "SeEnableDelegationPrivilege" 
Global Const $SE_IMPERSONATE_NAME = "SeImpersonatePrivilege" 
Global Const $SE_INC_BASE_PRIORITY_NAME = "SeIncreaseBasePriorityPrivilege" 
Global Const $SE_INCREASE_QUOTA_NAME = "SeIncreaseQuotaPrivilege" 
Global Const $SE_LOAD_DRIVER_NAME = "SeLoadDriverPrivilege" 
Global Const $SE_LOCK_MEMORY_NAME = "SeLockMemoryPrivilege" 
Global Const $SE_MACHINE_ACCOUNT_NAME = "SeMachineAccountPrivilege" 
Global Const $SE_MANAGE_VOLUME_NAME = "SeManageVolumePrivilege" 
Global Const $SE_PROF_SINGLE_PROCESS_NAME = "SeProfileSingleProcessPrivilege" 
Global Const $SE_REMOTE_SHUTDOWN_NAME = "SeRemoteShutdownPrivilege" 
Global Const $SE_RESTORE_NAME = "SeRestorePrivilege" 
Global Const $SE_SECURITY_NAME = "SeSecurityPrivilege" 
Global Const $SE_SHUTDOWN_NAME = "SeShutdownPrivilege" 
Global Const $SE_SYNC_AGENT_NAME = "SeSyncAgentPrivilege" 
Global Const $SE_SYSTEM_ENVIRONMENT_NAME = "SeSystemEnvironmentPrivilege" 
Global Const $SE_SYSTEM_PROFILE_NAME = "SeSystemProfilePrivilege" 
Global Const $SE_SYSTEMTIME_NAME = "SeSystemtimePrivilege" 
Global Const $SE_TAKE_OWNERSHIP_NAME = "SeTakeOwnershipPrivilege" 
Global Const $SE_TCB_NAME = "SeTcbPrivilege" 
Global Const $SE_UNSOLICITED_INPUT_NAME = "SeUnsolicitedInputPrivilege" 
Global Const $SE_UNDOCK_NAME = "SeUndockPrivilege" 
Global Const $SE_PRIVILEGE_ENABLED_BY_DEFAULT = 1 
Global Const $SE_PRIVILEGE_ENABLED = 2 
Global Const $SE_PRIVILEGE_REMOVED = 4 
Global Const $SE_PRIVILEGE_USED_FOR_ACCESS = 2147483648 
Global Const $TOKENUSER = 1 
Global Const $TOKENGROUPS = 2 
Global Const $TOKENPRIVILEGES = 3 
Global Const $TOKENOWNER = 4 
Global Const $TOKENPRIMARYGROUP = 5 
Global Const $TOKENDEFAULTDACL = 6 
Global Const $TOKENSOURCE = 7 
Global Const $TOKENTYPE = 8 
Global Const $TOKENIMPERSONATIONLEVEL = 9 
Global Const $TOKENSTATISTICS = 10 
Global Const $TOKENRESTRICTEDSIDS = 11 
Global Const $TOKENSESSIONID = 12 
Global Const $TOKENGROUPSANDPRIVILEGES = 13 
Global Const $TOKENSESSIONREFERENCE = 14 
Global Const $TOKENSANDBOXINERT = 15 
Global Const $TOKENAUDITPOLICY = 16 
Global Const $TOKENORIGIN = 17 
Global Const $TOKENELEVATIONTYPE = 18 
Global Const $TOKENLINKEDTOKEN = 19 
Global Const $TOKENELEVATION = 20 
Global Const $TOKENHASRESTRICTIONS = 21 
Global Const $TOKENACCESSINFORMATION = 22 
Global Const $TOKENVIRTUALIZATIONALLOWED = 23 
Global Const $TOKENVIRTUALIZATIONENABLED = 24 
Global Const $TOKENINTEGRITYLEVEL = 25 
Global Const $TOKENUIACCESS = 26 
Global Const $TOKENMANDATORYPOLICY = 27 
Global Const $TOKENLOGONSID = 28 
Global Const $TOKEN_ASSIGN_PRIMARY = 1 
Global Const $TOKEN_DUPLICATE = 2 
Global Const $TOKEN_IMPERSONATE = 4 
Global Const $TOKEN_QUERY = 8 
Global Const $TOKEN_QUERY_SOURCE = 16 
Global Const $TOKEN_ADJUST_PRIVILEGES = 32 
Global Const $TOKEN_ADJUST_GROUPS = 64 
Global Const $TOKEN_ADJUST_DEFAULT = 128 
Global Const $TOKEN_ADJUST_SESSIONID = 256 

Func _WINAPI_GETLASTERROR ( $CURERR = @ERROR , $CUREXT = @EXTENDED ) 
	Local $ARESULT = DllCall ( "kernel32.dll" , "dword" , "GetLastError" ) 
	Return SetError ( $CURERR , $CUREXT , $ARESULT [ 0 ] ) 
EndFunc 

Func _WINAPI_SETLASTERROR ( $IERRCODE , $CURERR = @ERROR , $CUREXT = @EXTENDED ) 
	DllCall ( "kernel32.dll" , "none" , "SetLastError" , "dword" , $IERRCODE ) 
	Return SetError ( $CURERR , $CUREXT ) 
EndFunc 

Func _SECURITY__ADJUSTTOKENPRIVILEGES ( $HTOKEN , $FDISABLEALL , $PNEWSTATE , $IBUFFERLEN , $PPREVSTATE = 0 , $PREQUIRED = 0 ) 
	Local $ARESULT = DllCall ( "advapi32.dll" , "bool" , "AdjustTokenPrivileges" , "handle" , $HTOKEN , "bool" , $FDISABLEALL , "ptr" , $PNEWSTATE , "dword" , $IBUFFERLEN , "ptr" , $PPREVSTATE , "ptr" , $PREQUIRED ) 
	If @ERROR Then Return SetError ( @ERROR , @EXTENDED , False ) 
	Return $ARESULT [ 0 ] 
EndFunc 

Func _SECURITY__GETACCOUNTSID ( $SACCOUNT , $SSYSTEM = "" ) 
	Local $AACCT = _SECURITY__LOOKUPACCOUNTNAME ( $SACCOUNT , $SSYSTEM ) 
	If @ERROR Then Return SetError ( @ERROR , 0 , 0 ) 
	Return _SECURITY__STRINGSIDTOSID ( $AACCT [ 0 ] ) 
EndFunc 

Func _SECURITY__GETLENGTHSID ( $PSID ) 
	If Not _SECURITY__ISVALIDSID ( $PSID ) Then Return SetError ( - 1 , 0 , 0 ) 
	Local $ARESULT = DllCall ( "advapi32.dll" , "dword" , "GetLengthSid" , "ptr" , $PSID ) 
	If @ERROR Then Return SetError ( @ERROR , @EXTENDED , 0 ) 
	Return $ARESULT [ 0 ] 
EndFunc 

Func _SECURITY__GETTOKENINFORMATION ( $HTOKEN , $ICLASS ) 
	Local $ARESULT = DllCall ( "advapi32.dll" , "bool" , "GetTokenInformation" , "handle" , $HTOKEN , "int" , $ICLASS , "ptr" , 0 , "dword" , 0 , "dword*" , 0 ) 
	If @ERROR Then Return SetError ( @ERROR , @EXTENDED , 0 ) 
	If Not $ARESULT [ 0 ] Then Return 0 
	Local $TBUFFER = DllStructCreate ( "byte[" & $ARESULT [ 5 ] & "]" ) 
	Local $PBUFFER = DllStructGetPtr ( $TBUFFER ) 
	$ARESULT = DllCall ( "advapi32.dll" , "bool" , "GetTokenInformation" , "handle" , $HTOKEN , "int" , $ICLASS , "ptr" , $PBUFFER , "dword" , $ARESULT [ 5 ] , "dword*" , 0 ) 
	If @ERROR Then Return SetError ( @ERROR , @EXTENDED , 0 ) 
	If Not $ARESULT [ 0 ] Then Return 0 
	Return $TBUFFER 
EndFunc 

Func _SECURITY__IMPERSONATESELF ( $ILEVEL = 2 ) 
	Local $ARESULT = DllCall ( "advapi32.dll" , "bool" , "ImpersonateSelf" , "int" , $ILEVEL ) 
	If @ERROR Then Return SetError ( @ERROR , @EXTENDED , False ) 
	Return $ARESULT [ 0 ] 
EndFunc 

Func _SECURITY__ISVALIDSID ( $PSID ) 
	Local $ARESULT = DllCall ( "advapi32.dll" , "bool" , "IsValidSid" , "ptr" , $PSID ) 
	If @ERROR Then Return SetError ( @ERROR , @EXTENDED , False ) 
	Return $ARESULT [ 0 ] 
EndFunc 

Func _SECURITY__LOOKUPACCOUNTNAME ( $SACCOUNT , $SSYSTEM = "" ) 
	Local $TDATA = DllStructCreate ( "byte SID[256]" ) 
	Local $PSID = DllStructGetPtr ( $TDATA , "SID" ) 
	Local $ARESULT = DllCall ( "advapi32.dll" , "bool" , "LookupAccountNameW" , "wstr" , $SSYSTEM , "wstr" , $SACCOUNT , "ptr" , $PSID , "dword*" , 256 , "wstr" , "" , "dword*" , 256 , "int*" , 0 ) 
	If @ERROR Then Return SetError ( @ERROR , @EXTENDED , 0 ) 
	If Not $ARESULT [ 0 ] Then Return 0 
	Local $AACCT [ 3 ] 
	$AACCT [ 0 ] = _SECURITY__SIDTOSTRINGSID ( $PSID ) 
	$AACCT [ 1 ] = $ARESULT [ 5 ] 
	$AACCT [ 2 ] = $ARESULT [ 7 ] 
	Return $AACCT 
EndFunc 

Func _SECURITY__LOOKUPACCOUNTSID ( $VSID ) 
	Local $PSID , $AACCT [ 3 ] 
	If IsString ( $VSID ) Then 
		Local $TSID = _SECURITY__STRINGSIDTOSID ( $VSID ) 
		$PSID = DllStructGetPtr ( $TSID ) 
	Else 
		$PSID = $VSID 
	EndIf 
	If Not _SECURITY__ISVALIDSID ( $PSID ) Then Return SetError ( - 1 , 0 , 0 ) 
	Local $ARESULT = DllCall ( "advapi32.dll" , "bool" , "LookupAccountSidW" , "ptr" , 0 , "ptr" , $PSID , "wstr" , "" , "dword*" , 256 , "wstr" , "" , "dword*" , 256 , "int*" , 0 ) 
	If @ERROR Then Return SetError ( @ERROR , @EXTENDED , 0 ) 
	If Not $ARESULT [ 0 ] Then Return 0 
	Local $AACCT [ 3 ] 
	$AACCT [ 0 ] = $ARESULT [ 3 ] 
	$AACCT [ 1 ] = $ARESULT [ 5 ] 
	$AACCT [ 2 ] = $ARESULT [ 7 ] 
	Return $AACCT 
EndFunc 

Func _SECURITY__LOOKUPPRIVILEGEVALUE ( $SSYSTEM , $SNAME ) 
	Local $ARESULT = DllCall ( "advapi32.dll" , "int" , "LookupPrivilegeValueW" , "wstr" , $SSYSTEM , "wstr" , $SNAME , "int64*" , 0 ) 
	If @ERROR Then Return SetError ( @ERROR , @EXTENDED , 0 ) 
	Return SetError ( 0 , $ARESULT [ 0 ] , $ARESULT [ 3 ] ) 
EndFunc 

Func _SECURITY__OPENPROCESSTOKEN ( $HPROCESS , $IACCESS ) 
	Local $ARESULT = DllCall ( "advapi32.dll" , "int" , "OpenProcessToken" , "handle" , $HPROCESS , "dword" , $IACCESS , "ptr" , 0 ) 
	If @ERROR Then Return SetError ( @ERROR , @EXTENDED , 0 ) 
	Return SetError ( 0 , $ARESULT [ 0 ] , $ARESULT [ 3 ] ) 
EndFunc 

Func _SECURITY__OPENTHREADTOKEN ( $IACCESS , $HTHREAD = 0 , $FOPENASSELF = False ) 
	If $HTHREAD = 0 Then $HTHREAD = DllCall ( "kernel32.dll" , "handle" , "GetCurrentThread" ) 
	If @ERROR Then Return SetError ( @ERROR , @EXTENDED , 0 ) 
	Local $ARESULT = DllCall ( "advapi32.dll" , "bool" , "OpenThreadToken" , "handle" , $HTHREAD [ 0 ] , "dword" , $IACCESS , "int" , $FOPENASSELF , "ptr*" , 0 ) 
	If @ERROR Then Return SetError ( @ERROR , @EXTENDED , 0 ) 
	Return SetError ( 0 , $ARESULT [ 0 ] , $ARESULT [ 4 ] ) 
EndFunc 

Func _SECURITY__OPENTHREADTOKENEX ( $IACCESS , $HTHREAD = 0 , $FOPENASSELF = False ) 
	Local $HTOKEN = _SECURITY__OPENTHREADTOKEN ( $IACCESS , $HTHREAD , $FOPENASSELF ) 
	If $HTOKEN = 0 Then 
		If _WINAPI_GETLASTERROR ( ) <> $ERROR_NO_TOKEN Then Return SetError ( - 3 , _WINAPI_GETLASTERROR ( ) , 0 ) 
		If Not _SECURITY__IMPERSONATESELF ( ) Then Return SetError ( - 1 , _WINAPI_GETLASTERROR ( ) , 0 ) 
		$HTOKEN = _SECURITY__OPENTHREADTOKEN ( $IACCESS , $HTHREAD , $FOPENASSELF ) 
		If $HTOKEN = 0 Then Return SetError ( - 2 , _WINAPI_GETLASTERROR ( ) , 0 ) 
	EndIf 
	Return $HTOKEN 
EndFunc 
 
[/SIZE]
2011-7-12 04:28
0
游客
登录 | 注册 方可回帖
返回
//