首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Lazarus中为Mac执行相当于shellexecute()的操作?

在Lazarus中为Mac执行相当于shellexecute()的操作,可以使用TProcess组件和TShellExecuteInfo记录结构。以下是一个简单的示例代码:

代码语言:txt
复制
uses
  Classes, SysUtils, Process, ShellAPI;

procedure TForm1.Button1Click(Sender: TObject);
var
  ProcessInfo: TShellExecuteInfo;
  ExitCode: DWORD;
begin
  FillChar(ProcessInfo, SizeOf(ProcessInfo), 0);
  ProcessInfo.cbSize := SizeOf(TShellExecuteInfo);
  ProcessInfo.fMask := SEE_MASK_NOCLOSEPROCESS;
  ProcessInfo.Wnd := Handle;
  ProcessInfo.lpVerb := PChar('open');
  ProcessInfo.lpFile := PChar('/path/to/your/file');
  ProcessInfo.lpParameters := PChar('');
  ProcessInfo.lpDirectory := nil;
  ProcessInfo.nShow := SW_SHOW;

  if ShellExecuteEx(@ProcessInfo) then
  begin
    WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
    GetExitCodeProcess(ProcessInfo.hProcess, ExitCode);
    CloseHandle(ProcessInfo.hProcess);
    ShowMessage('Process executed with exit code: ' + IntToStr(ExitCode));
  end
  else
  begin
    ShowMessage('Error executing process: ' + SysErrorMessage(GetLastError));
  end;
end;

在这个示例中,我们使用了ShellExecuteEx()函数和TShellExecuteInfo记录结构来执行一个文件。lpFile参数指定要执行的文件路径,lpParameters参数指定要传递给该文件的参数。SEE_MASK_NOCLOSEPROCESS标志允许我们等待进程完成并获取其退出代码。

注意:这个示例代码仅适用于Lazarus,并且需要导入ShellAPI单元。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python | 四种运行其他程序黑科技

【方式一】使用os.system()函数运行其他程序 os模块system()函数可以方便地运行其他程序或者脚本,模式如下: os.system(command) command: 要执行命令,...ShellExecute(hwnd, op, file, args, dir, show) hwnd: 父窗口句柄,如果没有父窗口,则为0 op: 要运行操作open,print或者空 file...: 要运行程序,或者打开脚本 args: 要向程序传递参数,如果打开是文件则为空 dir: 程序初始化目录 show: 是否显示窗口 示例如下: 使用ShellExecute函数,就相当于在资源管理器双击文件图标...等待创建线程结束,函数格式如下: WaitForSingleObject(handle, milisecond) handle : 要操作进程句柄 milisecond: 等待时间,如果...ctypes模块定义了C语言中基本数据类型,并且可以实现C语言中结构体和联合体。ctypes模块可以工作在Windows,Linux,Mac OS等多种操作系统,基本上实现了跨平台。

1.4K20

Python黑科技 | Python四种运行其他程序方式

【方式一】使用os.system()函数运行其他程序 os模块system()函数可以方便地运行其他程序或者脚本,模式如下: os.system(command) command: 要执行命令,...示例如下: 【方式二】使用ShellExecute函数运行其他程序 除了使用os.system()函数外,还可以使用win32api模块ShellExecute()函数来运行其他程序,格式如下:...show: 是否显示窗口 示例如下: 使用ShellExecute函数,就相当于在资源管理器双击文件图标,系统会打开相应程序运行。...等待创建线程结束,函数格式如下: WaitForSingleObject(handle, milisecond) handle : 要操作进程句柄 milisecond: 等待时间,如果...ctypes模块定义了C语言中基本数据类型,并且可以实现C语言中结构体和联合体。ctypes模块可以工作在Windows,Linux,Mac OS等多种操作系统,基本上实现了跨平台。

1.5K120
  • ShellExecute使用详解

    大家好,又见面了,我是你们朋友全栈君。 有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。...●Operation:用于指定要进行操作。...其中“open”操作表示执行由FileName参数指定程序,或打开由FileName参数指定文件或文件 夹;“print”操作表示打印由FileName参数指定文件;“explore”操作表示浏览由...当参数设为nil时,表示执 行默认操作“open”。    ●FileName:用于指定要打开文件名、要执行程序文件名或要浏览文件夹名。   ...●ShowCmd:若FileName参数是一个可执行程序,则此参数指定程序窗口初始显示方式,否则此参数应设置0。   若ShellExecute函数调用成功,则返回值执行程序实例句柄。

    1K10

    wine怎么打开exe_exe是什么格式文件

    这个函数和WIN9X命令行命令”start”类似,不光可以对文件进行操作,还可以对HTTP、MAILTO等进行操作。这样我们可以设计有超级链接风格程序了。   ...—-open:操作表示执行由FileName参数指定程序,或打开由FileName参数指定文件或文件夹;   —-print:操作表示打印由FileName参数指定文件;   —-explore:...—-nil时,表示执行默认操作“open”。   –FileName:用于指定要打开文件名、要执行程序文件名或要浏览文件夹名。   ...–ShowCmd:若FileName参数是一个可执行程序,则此参数指定程序窗口初始显示方式,否则此参数应设置0。   ...第一次运行程序 时应该使用这个值   若ShellExecute函数调用成功,则返回值执行程序实例句柄。若返回值小于32,则表示出现错误。

    2.2K20

    7.2 通过API创建新进程

    可以为NULL,如果NULL则表示没有窗口。lpOperation:操作类型,可以是open或print。如果NULL,则此函数将尝试打开文件。...lpFile:需要执行目标文件、应用程序或者URL地址。lpParameters:命令行参数。lpDirectory:指定被启动程序执行路径,如果NULL,则使用当前程序路径。...该函数返回HINSTANCE类型值,如果没有执行或则执行失败,它将返回一个值ERROR_FILE_NOT_FOUND或ERROR_BAD_FORMAT值。...WinExec()和ShellExecute() ,它可以更详细地控制进程执行进程窗口大小和位置,输出、输入和错误信息控制等,并且能够获取到新进程标识符以及进程句柄。...如果NULL,则将使用lpCommandLine参数文件名lpCommandLine:命令行参数,可以传递参数给可执行文件lpProcessAttributes:进程安全属性。

    20840

    ShellExecute 启动外部程序 参数详细介绍

    ●Operation:用于指定要进行操作。...其中“open”操作表示执行由FileName参数指定程序,或打开由FileName参数指定文件或文件夹;“print”操作表示打印由FileName参数指定文件;“explore”操作表示浏览由...当参数设为nil时,表示执行默认操作“open”。 ●FileName:用于指定要打开文件名、要执行程序文件名或要浏览文件夹名。...●ShowCmd:若FileName参数是一个可执行程序,则此参数指定程序窗口初始显示方式,否则此参数应设置0。 若ShellExecute函数调用成功,则返回值执行程序实例句柄。...上述仅仅是ShellExecute函数标准用法,下面将介绍它特殊用法。 5特殊用法编辑 如果将FileName参数设置“http:”协议格式,那么该函数将打开默认浏览器并链接到指定URL地址。

    3.8K110

    WinExec、ShellExecute和CreateProcess

    大家好,又见面了,我是你们朋友全栈君。 有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。...⑴ 函数原型: UINT Win Exec(LPCSTR lpCmdLine, UINT uCmdShow);   ⑵ 参数:   lpCmdLine:指向一个空结束字符串,串包含将要执行应用程序命令行...其中“open”操作表示执行由FileName参数指定程序,或打开由FileName参数指定文件或文件夹;“print”操作表示打印由FileName参数指定文件;“explore”操作表示浏览由...当参数设为nil时,表示执行默认操作“open”。   ●lpFileName:用于指定要打开文件名、要执行程序文件名或要浏览文件夹名。   ...●lpShowCmd:若FileName参数是一个可执行程序,则此参数指定程序窗口初始显示方式,否则此参数应设置0。

    1K20

    7.2 通过API创建新进程

    可以为NULL,如果NULL则表示没有窗口。 lpOperation:操作类型,可以是open或print。如果NULL,则此函数将尝试打开文件。...lpFile:需要执行目标文件、应用程序或者URL地址。 lpParameters:命令行参数。 lpDirectory:指定被启动程序执行路径,如果NULL,则使用当前程序路径。...该函数返回HINSTANCE类型值,如果没有执行或则执行失败,它将返回一个值ERROR_FILE_NOT_FOUND或ERROR_BAD_FORMAT值。...函数,例如WinExec()和ShellExecute() ,它可以更详细地控制进程执行进程窗口大小和位置,输出、输入和错误信息控制等,并且能够获取到新进程标识符以及进程句柄。...如果NULL,则将使用lpCommandLine参数文件名 lpCommandLine:命令行参数,可以传递参数给可执行文件 lpProcessAttributes:进程安全属性。

    17320

    【Windows 逆向】CheatEngine 工具 ( CheatEngine 简介 | 使用 Lazarus 编译 CE 源码 | CheatEngine 相关文档资料 )

    CE , 这是一款 内存 修改 编辑工具 , 借助该工具 , 可以修改运行在 Windows / Mac 系统上 游戏 或 软件 内存数据 ; CheatEngine 组成 : 16 进制编辑器...反汇编工具 内存查找工具 二、使用 Lazarus 编译 CE 源码 ---- CE 工具使开源 , 可以在 GitHub https://github.com/cheat-engine/cheat-engine.../ 下载源码 , 下载源码后在 Lazarus 开发环境 编译该源码 , 开发 CE 编程语言是 Pascal 语言 ; 下面是 Lazarus 百度百科介绍 : https://baike.baidu.com.../item/Lazarus/10651991 " Lazarus是一个用于FreePascal快速应用开发(RAD)面向对象FreePascal集成开发环境(IDE),不仅可以编译运行简单pascal...程序,还有很强窗体处理功能,界面清晰,操作简单方便。

    1.2K10

    WinExec, ShellExecute, CreateProcess

    此窗口接收应用程序产生任何信息框。   lpOperation:一个空结束字符串地址,此字符串指定要执行操作。...下面的操作字符串是有效: “open” 此函数打开由参数lpFile指定文件,此文件可以是一个可执行文件或文档文件,也可是一个文件夹。...,串包含将要执行应用程序命令行(文件名加上可选参数)。   ...此窗口接收应用程序产生任何信息框。   lpOperation:一个空结束字符串地址,此字符串指定要执行操作。...lpDirectory:一个空结束字符串地址,此字符串指定默认目录。   nShowCmd:假如lpFile指定一个可执行文件,nShowCmd表明应用程序打开时 何显示。

    1.4K20

    Lazarus 滥用戴尔驱动程序漏洞部署 FudModule Rootkit

    攻击者直接操控内核内存来禁用 Windows 操作系统能够跟踪其七种安全机制,注册表、文件系统、进程创建、事件跟踪等,使安全解决方案失效。...由于内核驱动程序已签名,Windows 系统将允许将驱动程序安装在操作系统,攻击者从而利用驱动程序漏洞获取内核级权限。...ESET 确定 BLINDINGCAN 后门支持 25 个命令,包括文件操作、命令执行、C&C 通信、屏幕截取、进程创建与系统信息泄露等。...【数据回传】 攻击活动不仅有 Rootkit FudModule,还有用于数据泄露上传工具。以及各种木马化开源应用程序, wolfSSL 与 FingerText。...将开源工具木马化是 Lazarus 一贯风格,微软在研究报告也提到了这一点。

    91410

    Lazarus 组织开始在攻击中应用反取证技术

    加密 Lazarus 组织在加载程序、可执行文件与配置文件中都应用了加密操作: 加载程序:解密加密 PE 文件并加载到内存执行文件:由加载程序加载后解密配置文件与 C&C 服务器通信 配置文件:...存储加密 C&C 服务器信息 【后门执行过程】 Lazarus 组织通过加密方式传输带有 C&C 服务器信息配置文件和与 C&C 服务器通信 PE 可执行文件。...数据被覆盖后,就很难再找到原始文件内容,使得分析人员在文件恢复与数据取证过程变得异常困难。 【恶意软件删除】 Lazarus 也会清除应用程序执行时预读取文件,全面消除恶意软件执行痕迹。...$STANDARD_INFORMATION:默认存在于所有文件属性,包含文件基本信息,时间戳、所有者和安全等。...【时间戳比较】 近期在失陷主机上发现篡改时间戳样本如下所示: 【篡改时间戳】 Lazarus 对时间戳修改可以归纳以下几点: 并非所有恶意软件都要修改时间戳 时间戳并非修改为任意值,而是与默认系统文件相同

    41020

    卡巴斯基:2023年第二季度IT威胁演变

    连接到C2服务器后,该下载程序会根据操作命令检索额外有效负载,并在内存执行它。在此期间,BLINDINGCAN恶意软件被用作内存驻留后门。...这种攻击严重依赖于我们在前一个案例中观察到相同DLL侧加载技术。Lazarus在各种活动多次使用这种恶意软件;并且还使用相同DLL侧加载技术来植入能够后门操作额外恶意软件。...或者Tomiris最初是Turla编写工具私人机构,现在扩展到雇佣兵业务。...在重现攻击者执行命令后,研究人员很快就发现这些命令是由人类操作执行,而且,从打字错误数量来看,很可能是一个没有经验操作员。...该恶意扩展具有各种JS脚本,可以在用户浏览目标网站时执行浏览器操作,包括枚举和操纵加密货币网站。它还能够操纵一些电子邮件服务(Gmail、Hotmail和Yahoo)外观,以隐藏其活动。

    28620

    关于WinExec和System比较

    ,串包含将要执行应用程序命令行(文件名加上可选参数)。   ...此窗口接收应用程序产生任何信息框。   lpOperation:一个空结束字符串地址,此字符串指定要执行操作。...下面的操作字符串是有效: “open ” 此函数打开由参数lpFile指定文件,此文件可以是一个可执行文件或文档文件,也可是一个文件夹。...⑶ 返回值:   若函数调用成功,则返回值不为0;若函数调用失败,返回值0。   ShellExecute和WinExec命令用于简单作业。...可以规定该结构体标志,已表明要设置数据段。有时,不想设置任何信息,也必须传递一个有效指针给空结构(确定设置大小到cb,及设置dwFlags成员0)。

    1.1K20

    深度报告 | 揭秘朝鲜黑客组织Lazarus Group对加密货币窃取手段

    在2016年底和2017年初,Lazarus Group针对几家银行和金融机构入侵,其第一阶段下载植入恶意软件名为Ratankba,它被攻击者主要用于前期渗透侦察,趋势科技公司甚至把它形容“地形测绘工具...与其前身类似,PowerRatankba利用HTTP进行C&C通信,执行后,PowerRatankba首先通过BaseInfo HTTP POST方式,将包含计算机名称、IP、操作系统启动时间和安装日期...持久化文件appView.js包含XOR编码PowerShell脚本,用于从硬编码URL检索Base64编码PowerShell命令,URL地址脚本hxxp://macintosh.linkpc...;如果当前用户不是管理员权限,则会从硬编码URL地址中下载一个VB脚本,并保存到用户系统启动菜单 PwdOpt.vbs或ProxyServer.vbs。...月左右, Lazarus Group 以窃取金钱目的,通过SWIFT系统入侵了中国台湾远东国际商业银行(FEIB),攻击活动一个植入程序被作为加载器和扩展器使用,并被写入到c:\windows\temp

    1.9K90

    内网渗透测试:利用DCOM进行横向渗透

    COM是许多微软产品和技术,Windows媒体播放器和Windows Server基础。 一般对象是由数据成员和作用在其上方法组成,而组件对象和一般对象虽有相似性,但又有较大不同。...接口被定义“在对象上实现一组语义上相关功能”,其实质是一组函数指针表,每个指针必须初始化指向某个具体函数体,一个组件对象实现接口数量没有限制。...(powershell命令行)默认只在powershell 3.0以上版本存在,所以只有 Windows server 2012 及以上版本操作系统才可以使用Get-Ciminstance。...本地使用DCOM执行任意命令 我们在获取DCOM应用程序时候,遇到了一个MMC Application Class(MMC20.Application): 这个COM对象可以编程MMC管理单元操作组件脚本...","127.0.0.1")) 获得COM对象实例后,我们还可以执行如下命令枚举这个COM对象不同方法和属性: # 此时可执行如下命令获得"MMC20.Application"支持操作 $com.Document.ActiveView

    2.6K20

    APT案例分析 | Lazarus利用ThreatNeedle攻击某工业

    为了说服目标允许恶意宏,攻击者发送了另一封电子邮件,显示了如何在Microsoft Office启用宏。...然后,该恶意软件在系统文件夹创建一个名为bcdbootinfo.tlp文件,包含感染时间和所选随机服务名称,恶意软件操作员会检查此文件,以查看远程主机是否已感染,以及是否感染了感染时间。...初始感染一天后,恶意软件操作员将该工具放置在此主机上,并使用以下命令执行该工具: [响应者文件路径] -i [IP地址] -rPv 几天后,攻击者开始从此主机侧向移动,因此推测攻击者已成功从该主机获取登录凭据...接下来,XORed Blob接收提供第二个命令行参数(在本例S0RMM-50QQE-F65DN-DCPYN-5QEQA)。...在这次活动Lazarus Group展示了其先进水平和能力来规避他们在攻击过程面临安全防御措施,例如网络分段等。

    2.4K30

    macOS用户威胁总结

    人们一直认为MacOS操作系统没有威胁(或者至少没有严重威胁)。与基于Windows系统相比,针对MacOS威胁要少得多。...恶意软件威胁,shlayer家族一直是最流行,他们伪装成adobe flash player或者其他更新程序进行攻击。 超过四分之一mac用户生活在美国。...这个组使用工具之一是xagent,它是一组共享公共代码库恶意软件,每个样本都经过单独修改以感染特定操作系统,包括macos和ios。...Lazarus新MacOS恶意软件(2019年1月) 在applejeus运行六个月后,我们发现了新lazarus活动活动,来自金融部门公司再次受到攻击,攻击期间攻击者使用了先前未知macos恶意软件...(AppStore)下载和安装应用程序。

    79100

    赛门铁克发现朝鲜APT组织Lazarus攻击金融机构关键性工具

    同样攻击也在2018年发生过,这一次,Lazarus从23个不同国家ATM机系统窃取了大量现金。...Lazarus开展FASTCash攻击具体流程 为了实现从ATM机系统欺诈性转移现金,Lazarus攻击者具体做法是,在负责ATM交易交换应用服务器,向某个运行合法进程注入一个高级交互执行程序...,其将会读取所有传入服务器网络流量,并扫描流量包含 ISO 8583报文请求,而且它还会探测流量消息,攻击者用来执行交易银行主账户号(Primary Account Number,PAN),如果有银行主账户号出现...截至目前,在所有对FASTCash攻击报告,都提到了由于银行应用服务器AIX操作系统更新不及时,存在漏洞,导致被攻击者入侵说法。...防护建议 1、及时更新操作系统和相关应用软件; 2、关注并更新近期容易被攻击者利用应用软件漏洞; 3、及时更新应用服务涉及AIX操作系统。

    57010
    领券