小编pau*_*ohr的帖子

获取另一个进程的过程/函数地址

我正在编写一个显示所有已打开进程的线程列表的程序.

使用类似的程序(Process Explorer),我可以看到线程列表,其中包含一些信息,如线程ID,优先级,起始地址等.

我也能够检索所有这些信息,但Process Explorer显示起始地址如下:

ModuleName!ProcedureName+$1111
Run Code Online (Sandbox Code Playgroud)

如何在ProcedureName不注入dll的情况下使用GetProcAddress?

delphi function getprocaddress

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

C char类型到delphi转换

可能的重复:
将 C 数组声明移植到 Delphi

我正在将 C 代码转换为 Delphi,并且我想转换变量声明,但我真的不知道..你能帮忙吗?

char szImageName[BUFMAXLEN];
Run Code Online (Sandbox Code Playgroud)

谢谢。

c delphi

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

将C"FOR"循环转换为Delphi

我正在尝试将FOR循环从C转换为Delphi,但我有些疑惑:

我在C中知道这段代码:

       for (i = 0; i < mb->size; i++)
       {
           //...
       }
Run Code Online (Sandbox Code Playgroud)

在Delphi中是这样的:

       for i := 0 to mb.size do 
       begin
           //...
       end;
Run Code Online (Sandbox Code Playgroud)

但这个C代码怎么样:

       for (i = 0; i < mb->size; i+= mb->data_size)
       {
        //...
       }
Run Code Online (Sandbox Code Playgroud)

可能会看德尔福?

       ?
Run Code Online (Sandbox Code Playgroud)

c delphi for-loop

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

获取线程起始地址

我正在编写一个进程查看器,它完成了99%,我只需要获取进程'线程的起始地址,但我不知道它是怎么做的.谁能帮我?:/ 谢谢

delphi multithreading get process

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

如何在Delphi中比较两个数字的相等性?

我正在将代码从C转换为Delphi,但我仍然停留在这段代码的最后一行:

 BOOL is_match = FALSE;
 unsigned int temp_val;
 unsigned int prev_val = 0;

 is_match = (temp_val == val);
Run Code Online (Sandbox Code Playgroud)

我只能转换这么多:

 var
  is_match: boolean;
  temp_val: cardinal;
  prev_val: cardinal;
 begin
  is_match := false;
  prev_val := 0;
  is_match := ????
 end;
Run Code Online (Sandbox Code Playgroud)

我如何填写最后一个作业?

c delphi if-statement

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

内存扫描仪慢速扫描

我正在使用内存扫描仪,但扫描速度很慢..任何人都可以帮我改进吗?

procedure FirstScan(scantype, scanvalue: string);
var
 value :integer;
 dwEndAddr : dword;
 i:dword;
 mbi : TMemoryBasicInformation;
begin
  while (VirtualQuery(Pointer(DWORD(mbi.BaseAddress) + MBI.RegionSize), MBI, SizeOf(MEMORY_BASIC_INFORMATION))=SizeOf(TMemoryBasicInformation)) do begin
   if (MBI.State = MEM_COMMIT) and (MBI.Protect = PAGE_READWRITE) then begin
    dwEndAddr := DWORD(mbi.BaseAddress) + MBI.RegionSize;
     for i := DWORD(MBI.BaseAddress) to (dwEndAddr - 1 - sizeof(DWORD)) do begin
      Application.ProcessMessages;
      try
       if scantype = '1 Byte' then begin
        value := PBYTE(i)^;
        if scanvalue = IntToStr(value) then ListBox1.Items.Add(IntToHex(i,8));
       end;
       //others scantypes here...
      except
       Break;
      end;
     end;
   end; 
  end;
end; …
Run Code Online (Sandbox Code Playgroud)

c c++ memory delphi

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

内存扫描程序始终返回相同的结果

使用此代码,我猜扫描更快,但扫描始终返回SAME地址.

例如:

00123456
00124567
00135478
00145893
00123456 //start repeat 
00124567
00135478
00145893
00123456 //start repeat 
00124567
00135478
00145893
Run Code Online (Sandbox Code Playgroud)

这是我的程序:

procedure SCANBYTE(value: integer);
var
 lpflOldProtect: dword;
 s: size_t;
 mbi: MEMORY_BASIC_INFORMATION;
 SI: SYSTEM_INFO;
 lpStartAddress, lpStopAddress: dword;
 addr: dword;
 i: dword;
begin
 GetSystemInfo(si);
 lpStartAddress := dword(SI.lpMinimumApplicationAddress);
 lpStopAddress := dword(SI.lpMaximumApplicationAddress);
 for addr := lpStartAddress to lpStopAddress do begin
  S:= VirtualQuery(Pointer(addr), MBI, SizeOf(MEMORY_BASIC_INFORMATION));
  if (S=SizeOf(MEMORY_BASIC_INFORMATION)) and (MBI.State = MEM_COMMIT) and (MBI.Type_9 = MEM_PRIVATE) and (MBI.RegionSize>0) and (MBI.Protect = PAGE_READWRITE) then begin
   for i := dword(MBI.BaseAddress) …
Run Code Online (Sandbox Code Playgroud)

memory delphi

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

发送没有SendMessage和PostMessage的密钥

是否有可能发送键没有一个程序SendMessagePostMessageAPI?

delphi winapi postmessage sendmessage sendkeys

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

将类从C++转换为Delphi

我正在尝试将C++项目转换为Delphi,但我不知道如何转换这两个类:

class CData;
class CContext;

class CData
{
public:
    CContext* Data;
};

class CContext
{
public:
    char Unk[2240];
    DWORD data1;
    DWORD data2;
    DWORD data3;
};
Run Code Online (Sandbox Code Playgroud)

用法:

CData* Data = (CData*)(0x00112233);

//This code obtain the bytes in memory of the address "0x00112233" based on the sizes specified at CContext class
Run Code Online (Sandbox Code Playgroud)

如果有人知道,请帮助我.

谢谢.

c++ delphi class

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

将定义从C转换为Delphi

我正在将一个开源应用程序从C转换为Delphi,但是我在转换这些行时遇到了问题:

#define IS_IN_SEARCH(mb, offset) (mb->searchmask[(offset)/8] & (1<<((offset)%8)))
#define REMOVE_FROM_SEARCH(mb, offset)  mb->searchmask[(offset)/8] &= ~(1<<((offset)%8));
Run Code Online (Sandbox Code Playgroud)

我唯一想做的就是创建一个函数,但不知道其余的..

我不知道如何将其转换为Delphi.

谁能帮我?

谢谢

c delphi function definition

0
推荐指数
2
解决办法
401
查看次数

Delphi - 比较浮点值

我有一个返回浮点值的函数,如下所示:

1.31584870815277
Run Code Online (Sandbox Code Playgroud)

我需要一个函数,它返回TRUE,比较值和点后面的两个数字.

例:

if 1.31584870815277 = 1.31 then ShowMessage('same');
Run Code Online (Sandbox Code Playgroud)

对不起我的英语不好.

有人能帮我吗?谢谢

delphi floating-point compare numbers decimal

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

将C++ FOR循环转换为Delphi

可能重复:
将C"FOR"循环转换为Delphi

我正在尝试将C++ FOR循环转换为Delphi,但我不知道该怎么做...

这是C++函数:

bool bCompare(const BYTE* pData, const BYTE* bMask, const char* szMask)
{
    for(;*szMask;++szMask,++pData,++bMask)
        if(*szMask=='x' && *pData!=*bMask)   return 0;
    return (*szMask) == NULL;
}
Run Code Online (Sandbox Code Playgroud)

我刚刚转换了函数声明:

function bCOmpare( pData: PBYTE; bMask: PBYTE; szMask: PCHAR):boolean;
begin
//...
end;
Run Code Online (Sandbox Code Playgroud)

如何转换?

谢谢

c++ delphi

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

下载没有防病毒检测的文件

我正在编写一个程序,从我的服务器下载文件(dll)并使用此文件.但是,当下载完成后,我的防病毒软件(卡巴斯基)会使用Constructor.Win32.Downldr.xr检测我的文件.我怎么解决这个问题?

但是,我将我的2个文件放在www.virustotal.com上,并且都没有病毒.

注意:这两个文件(进行下载的程序和文件,即dll)是在Delphi 7中创建的.

delphi dll antivirus virus delphi-7

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