小编use*_*124的帖子

下载加密(XOR)内容

我有一个用XOR加密的在线TXT文件.我正在使用Indy HTTP来读取此文件.当我这样做:

Buff.Text:= HTTP.Get('http://www.blabla.com/xor.txt');
Run Code Online (Sandbox Code Playgroud)

Buff中的内容已损坏,我无法正确解密.怎么解决这个?下面我将粘贴我正在使用的函数来对Xxt文件进行XOR:

function TForm1.XorStr(Input: AnsiString; Seed: integer): AnsiString;
var
i : integer;
Output : AnsiString;
begin
    Output := '';
    for i := 1 to Length(Input) do
        Output := Output + AnsiChar(Ord(Input[i]) XOR (Seed));
    Result:= Output;
end;
Run Code Online (Sandbox Code Playgroud)

希望有人可以帮助我.感谢你们!

delphi delphi-2010

1
推荐指数
1
解决办法
232
查看次数

CreateProcess并获取句柄

我正在使用CreateProcess API将RealVNC与我的exe集成...我只需要为创建的vnc客户端处理句柄,但到目前为止我还没有成功.代码非常简单:

procedure TForm1.VncAuth;
var
  StartInfo: TStartupInfo;
  ProcInfo: TProcessInformation;
  CmdLine: string;
  title: string;
  ProcHandle: THandle;
begin
  FillChar(StartInfo,SizeOf(TStartupInfo),#0);
  FillChar(ProcInfo,SizeOf(TProcessInformation),#0);
  StartInfo.cb := SizeOf(TStartupInfo);
  CmdLine:= 'vnc.exe';
  UniqueString(CmdLine);
  CreateProcess(NIL ,PChar(CmdLine), NIL, NIL, False, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS
                                  , NIL, NIL, StartInfo, ProcInfo);
  ProcHandle:= ProcInfo.hProcess;
  GetWindowText(ProcHandle, PChar(title), 255);
  ShowMessage(title);
end;
Run Code Online (Sandbox Code Playgroud)

标题var中没有返回任何内容... GetWindowText函数只是一个测试,看看我是否有正确的句柄,如果是,我应该看到vnc客户端标题是正确的?谢谢!

delphi winapi delphi-2010

1
推荐指数
1
解决办法
2634
查看次数

DLL注入和访问冲突

我有一个简单的DLL,我在记事本中注入仅用于测试目的.我的注射器代码是这样的:

uses
  Windows;

var
  BytesWritten:  cardinal;
  PID, Process, Thread, ThreadId, hKernel: dword;
  pLoadLibrary, Paramaters: pointer;
    DLL: AnsiString;

    begin
      DLL := 'C:\test.dll'; // Must be full path name.
      PID := 3160;
      Process := OpenProcess(PROCESS_ALL_ACCESS,
                             False,
                             PID);

      Paramaters := VirtualAllocEx(Process,
                                 nil,
                                   Length(DLL),
                                   MEM_COMMIT,
                                 PAGE_EXECUTE_READWRITE);

      WriteProcessMemory(Process,
                         Paramaters,
                         PAnsiChar(DLL),
                         Length(DLL),
                         BytesWritten);

      hKernel := GetModuleHandle('KERNEL32.DLL');

      pLoadLibrary := GetProcAddress(hKernel,
                                     'LoadLibraryA');

      Thread := CreateRemoteThread(Process,
                                   nil,
                                   0,
                                   pLoadLibrary,
                                   Paramaters,
                                   0,
                                   ThreadId);

      WaitForSingleObject(Thread, INFINITE);

      VirtualFreeEx(Process,
                    Paramaters,
                    0,
                    MEM_RELEASE);

      CloseHandle(Thread);
      CloseHandle(Process);
end.
Run Code Online (Sandbox Code Playgroud)

我的DLL代码很简单:

uses
  SysUtils,
  Classes,
  Windows;

{$R *.res}


procedure …
Run Code Online (Sandbox Code Playgroud)

delphi dll dll-injection

1
推荐指数
1
解决办法
1706
查看次数

在DLL过程中使用Process32First/Next

我有以下程序:

procedure MyMainThread.MapProc;
var
  Handle: THandle;
  PID: dword;
  Struct: TProcessEntry32;
  Processes: TStringList;
begin
  Handle:= CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0);
  Struct.dwSize:=Sizeof(TProcessEntry32);
  Process32First(Handle, Struct);
  Processes:= TStringList.Create;
  repeat
    Processes.Add(Struct.szExeFile);
    Processes.SaveToFile('C:\Log.txt');
    PID:= Struct.th32ProcessID;
    PIDHandle:= OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_OPERATION or
      PROCESS_VM_READ, false, PID);
    CloseHandle(PIDHandle);
  until (not Process32Next(Handle,Struct));
  Processes.Free;
end;
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我将运行的进程保存在C:\ Log.txt中,这在.exe文件中很有用.现在我正在尝试在.DLL文件中实现它,概念是:DLL将被加载,它将有一个EntryPoint调用Thread.Create ...这个Thread将使用SetTimer来运行MapProc的过程每10秒钟在C:\ Log.txt中保存正在运行的进程.代码是:

library Project1;

uses
  Windows,
  SysUtils,
  Classes,
  Registry,
  EncdDecd,
  TLHelp32,
  IdHTTP;

{$R *.res}
type
  MyMainThread = Class(TThread)
  var
    DestDir, ContactHost: String;
    Sent: TStringList;
    PIDHandle: THandle; //need to be public because we use in MapProc / CatchYa
  private …
Run Code Online (Sandbox Code Playgroud)

delphi dll winapi

0
推荐指数
1
解决办法
5638
查看次数

为什么"\ r \n"不起作用?

我觉得这个问题有点愚蠢,但是我已经测试了我想到的所有东西,试着修复它,没有任何效果.我正在调用一个函数echo,如下面的代码所示:

echo showInfos($ uid,$ con);

好的,showInfos函数是这样的:

function showInfos($uid, $con)
{
    $ret = '';
    $query =    "SELECT Name, ProcName, ByteType, InsertTime FROM tableInfos WHERE uid = '" . mysql_real_escape_string($uid, $con) . "'";
    $res = mysql_query($query, $con);
    if($res)
    {
        while($row = mysql_fetch_array($res))
        {
            $ret .= '----New Track Data ::'."\r\n".'..ProcName:'.$row['ProcName']."\r\n";
        }       
    }
    return $ret;
}
Run Code Online (Sandbox Code Playgroud)

你可以看到我在回复中添加"\ r \n"...但由于某些未知原因,我的浏览器仍以这种方式显示所有内容:

----新的跟踪数据:: ..名称:notepad.exe ----新的跟踪数据:: ..名称:notepad.exe ----新的跟踪数据:: ..名称:notepad.exe

我认为应该是这样的:

----新的跟踪数据::

..ProcName:NOTEPAD.EXE

----新的跟踪数据::

..ProcName:NOTEPAD.EXE

这是怎么回事?谢谢关注!

php

0
推荐指数
1
解决办法
147
查看次数

即使进程关闭,也要保持DLL加载

我正在开发一个将由我的EXE加载的DLL文件...所以EXE将调用第一个DLL程序,当这个程序加载时我想保持它打开,即使EXE关闭.例如,我有一个带有计时器的DLL,显示一个'Hello World'消息.DLL代码:

uses
  SysUtils,
  Classes,
  Dialogs,
  ExtCtrls;

{$R *.res}

type
  TMyTimer = Class(TTimer)
  public
    procedure OnMyTimer(Sender: TObject);
  end;

procedure DllMessage; export;
var
  MyTimer: TMyTimer;
begin
  MyTimer := TMyTimer.Create(nil);
  MyTimer.Interval := 10000;
  MyTimer.OnTimer := MyTimer.OnMyTimer;
end;


procedure TMyTimer.OnMyTimer(Sender: TObject);
begin
  ShowMessage('Hello World');
end;

exports DllMessage;

begin
end.
Run Code Online (Sandbox Code Playgroud)

EXE加载如下:

procedure DllMessage; external 'Message.dll'

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  DllMessage;
end;
Run Code Online (Sandbox Code Playgroud)

当我关闭EXE时,我希望DLL继续运行并每隔10秒显示一条消息......这可能吗?

delphi dll

-4
推荐指数
1
解决办法
291
查看次数

标签 统计

delphi ×5

dll ×3

delphi-2010 ×2

winapi ×2

dll-injection ×1

php ×1