分类 笔记 下的文章
战略make Hook LsaApLogonUserEx2时X86/X64需要注意的地方
Type {$IFDEF WIN64} xDWORD = DWORD64; {$ELSE} xDWORD = DWORD; {$ENDIF} PMSV1_0_INTERACTIVE_LOGON= ^MSV1_0_INTERACTIVE_LOGON; MSV1_0_INTERACTIVE_LOGON = Record MessageType :MSV1_0_LOGON_SUBMIT_TYPE; LogonDomainName :UNICODE_STRING; UserName :UNICODE_STRING; Password :UNICODE_STRING; End; // 计算的时候需要考虑X86/X64的区别{内存地址长度的问题} Function AdjustPointer(Buffer, Base:Pointer):xDWORD; begin if (xDWORD(Buffer) < xDWORD(Base)) then begin Result := xDWORD(Buffer); end else begin Result := (xDWORD(Buffer) - xDWORD(Base)); end; end; // 计算字符串的偏移地址 ProtocolSubmitBuffer^.LogonDomainName.Buffer := PWideChar(xDWORD(ProtocolSubmitBuffer) + AdjustPointer(ProtocolSubmitBuffer^.LogonDomainName.Buffer, ClientBufferBase));
Windows Vista/7/8/8.1/2012下文件夹安全选项标签{用户权限标签} 失踪的处理
以下内容复制保存为 .reg 注册表文件后 双击导入即可
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shellex\PropertySheetHandlers\{1f2e5c40-9550-11ce-99d2-00aa006e086c}] [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer] "NoSecurityTab"=- [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer] "NoSecurityTab"=-
小试mstsc进程键盘记录
Delphi下的纯Pascal的十六进制转十进制
Function StrLenA(Str :PAnsiChar):Integer; Begin Result := 0; while Str[Result] <> #$0 do Inc(Result) End; Function Char2Int(A :AnsiChar):Integer; Begin //字符转整数 Result := -1; if (Byte(A) > 47) And (Byte(A) < 58) Then Begin //0-9 Result := Byte(A) - 48; End Else if (Byte(A) > 64) And (Byte(A) < 71) then Begin //A-F Result := Byte(A) - 55; End Else if (Byte(A) > 96) And (Byte(A) < 103) then Begin //a-f Result := Byte(A) - 87; End; End; Function HexPower(X, Y:Integer):UInt64; Var //次方计算 I :Integer; Begin Result := X; for I := 1 to Y do Begin Result := Result * 16; End; End; Function Hex2Int(HEX :PAnsiChar):UInt64; Var //十六进制字符串转整数 iLen :Integer; I :Integer; Begin iLen := StrLenA(HEX); Result:= 0; for I:= 0 to iLen-2 do Begin Result := Result + HexPower(Char2Int(HEX[I]), iLen - (I + 1)); End; Result := Result + Char2Int(HEX[iLen-1]); End;
代码实例:
Var HEX :Array [0..16] Of AnsiChar; begin HEX := '14f03'#$0; Writeln(Hex2Int(@HEX)); HEX := 'FFFFFFFF'#$0; Writeln(Hex2Int(@HEX)); HEX := 'FFFFFFFFFFFFFFFF'#$0; Writeln(Hex2Int(@HEX)); Readln; End.
运行结果: