在vc++ 程序中运行另一个程序的方法有三个: WinExec(),ShellExcute()和CreateProcess() 三个SDK函数: WinExec,ShellExecute ,CreateProcess...这些句柄拥有在参数lpProcessAttributes和lpThreadAttributes中规定的访问。...可以将ID发送到其它进程,或使用句柄来控制新进程。...关于三个SDK函数: WinExec, ShellExecute,CreateProcess 的其他注意事项: 1、定义头文件 在头文件stdafx.h中必须定义以下两个头文件: #include...CreateProcess返回该结构中的进 程ID及其句柄,以及初始线程ID及其句柄。可以将ID发送到 其它进程,或使用句 柄来控制新进程。
uCmdShow:定义Windows应用程序的窗口如何显示,并为CreateProcess函数提供STARTUPINFO参数的wShowWindow成员的值。 ...该命令向命令解释程序提出打开、浏览或打印文档或文件夹的请求,虽然可以用ShellExecute运行程序,但通常只发送文档名,而命令解释程序则决定要运行那个程序。...这些句柄拥有在参数lpProcessAttributes和lpThreadAttributes中规定的访问。 ...其返回值是布尔型的,而真正感兴趣的返回值发生于作为参数传送的结构中(PROCESS_INFORMATION)。CreateProcess返回该结构中的进程ID及其句柄,以及初始线程ID及其句柄。...可以将ID发送到其它进程,或使用句柄来控制新进程。
CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。...由于Java运行时环境(JRE)将命令行参数传递给Windows的错误,在启用CGI Servlet参数enableCmdLineArguments的Windows计算机上运行的Tomcat服务器很容易受到远程代码执行的影响...通过调用CreateProcess()函数启动Windows操作系统中的新进程,该函数将以下命令行作为字符串(对CreateProcess的lpComandLine参数):int CreateProcess...在ProcessImpl()的Windows实现中,start方法调用ProcessImpl()的私有构造函数,该构造函数为CreateProcess调用创建命令行。...ProcessImpl()构建Cmdline并将其传递给CreateProcess() Windows函数,之后CreateProcess() 在cmd.exe shell环境中执行.bat和.cmd
在vc++ 程序中运行另一个程序的方法有三个: WinExec(),ShellExcute()和CreateProcess() 三个SDK函数: WinExec,ShellExecute ,CreateProcess...该命令向命令解释程序提出打开、浏览或打印文档或文件夹的请求,虽然可以用ShellExecute运行程序,但通常只发送文档名,而命令解释程序则决定要运行那个程序。...这些句柄拥有在参数lpProcessAttributes和lpThreadAttributes中规定的访问。...可以将ID发送到其它进程,或使用句柄来控制新进程。...关于三个SDK函数: WinExec, ShellExecute,CreateProcess 的其他注意事项: 1、定义头文件 在头文件stdafx.h中必须定义以下两个头文件: #include
有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。CreateProcess因为使用复杂,比较少用。...uCmdShow:定义Windows应用程序的窗口如何显示,并为CreateProcess函数提供STARTUPINFO参数的wShowWindow成员的值。 ...若用户机器中安装了多个浏览器,则该函数将根据Windows 9x/NT注册表中http协议处理程序(Protocols Handler)的设置确定启动哪个浏览器。 ...若用户机器中安装了多个邮件客户程序,则该函数将根据Windows 9x/NT注册表中mailto协议处理程序的设置确定启动哪个邮件客户程序。 ...这些句柄拥有在参数lpProcessAttributes和lpThreadAttributes中规定的访问。
这是使用了 CreateProcess 方法的一个过时用法,那就是在此方法的 lpApplicationName 参数里面传入将要启动的进程路径,在第二个参数 lpCommandLine 里面传入的是...C:\Windows\notepad.exe 命令行参数 以下是 CreateProcess 方法签名 BOOL CreateProcessW ( [in, optional] LPCWSTR...接下来咱将创建一个控制台项目来测试此行为 先新建一个 dotnet 6 控制台程序,为了方便 PInvoke 调用 Win32 的 CreateProcess 函数,根据 dotnet 使用 CsWin32...; 接下来创建一个有趣的命令行参数,例如就是记事本的路径 var arguments = "\"C:\\windows\\notepad.exe\""; 接着调用 CreateProcess 函数,如以下代码...本文的代码放在github 和 gitee 欢迎访问 可以通过如下方式获取本文的源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文的代码 git
4.1 创建进程API 在一个进程中创建并启动一个新进程,无论是对于病毒木马程序还是普通的应用程序而言,这都是一个常见的技术,最简单的方法无非是直接通过调用WIN32 API函数创建新进程。...如果在lpCmdLine参数中可执行文件的名称不包含目录路径,则系统将按以下顺序搜索可执行文件: 应用程序的目录、当前目录、Windows系统目录、Windows目录以及PATH环境变量中列出的目录。...如果lpFile不是文档文件,则该函数将失败。 explore:探索由lpFile指定的文件夹。 find:在由lpDirectory指定的目录中启动搜索。...接下来,本节将介绍突破SESSION 0隔离,在服务程序中创建用户桌面进程。...首先就是要把DLL文件按照映像对齐大小映射到内存中,切不可直接将DLL文件数据存储到内存中。
GetLastError = " << GetLastError() << endl; getchar(); return 0; } ShellExecute ShellExecute 在不使用管理员权限运行...// edit:编辑,open:打开,print:打印,explore:浏览,find:搜索 L"E:\\MyToolBar\\Programming\\取色器.exe", // 文件全路径或文件夹名...与应用程序关联的键盘快捷键 union { HANDLE hIcon; // 目标文件图标句柄,fMask = SEE_MASK_ICON 时使用 HANDLE hMonitor; // 文档监视器句柄...GetLastError() << endl; } getchar(); return 0; } 正常打开,没有什么问题 下面再看 Unicode 编码,仍然用上面的代码,运行一下,发现程序在调用...CreateProcess 的时候触发了空指针异常: 将代码改成如下: int main() { // 初始化 WCHAR* szCommandLine = L"E:\\MyToolBar\\Programming
在windows中.进程的空间都是虚拟空间. 低2G空间是用户使用的. 高2G则是内核中使用. 而且是所有进程共享的.只有ring 3也就是用户模式的exe空间是独立的....在windows任务管理器中 (ctrl + alt + del / ctrl + shift + esc 调出) 如下图: ?...而它创建的时候.是通过API CreateProcess 进行创建的. 2.原理.CreateProcess做了什么事情. 1.映射exe内存. 当调用CreateProcess的时候....三丶进程创建CreateProcess解析 通过上面的原理我们知道了系统会调用CreateProcess进行创建进程. PS: 在windows系统中.我们使用API的时候其实是 A版本跟W版本....(其他也可以.但不是必须) 给定的是使用的当前结构体的大小.因为在windows程序中.很有可能扩展.为了扩展性.所以给一个成员指定一下.等以后结构体修改了.那么我们成员多大.windows就知道使用多大的结构体了
CreateProcess内部会更改向其传递的命令行字符串,但在CreateProcess返回之前,它会将该字符串恢复原样。...这一点是非常重要的,因为如果你向CreateProcess传递的命令行字符串位于进程的只读存储区,就会发生Access Violation错误。...微软在其C++编译器选项中提供了/GF开关,/GF打开时,程序中所有用到的常量字符串将只维护单一副本,且位于只读存储部分。在调用 CreateProcess时,开发人员应该打开/GF开关并使用缓冲区。...我们希望微软在未来版本的Windows中会改进CreateProcess,使其接受常量字符串作为命令行参数,并在其内部分配/释放临时缓冲区而不是让API调用者来做。...将这些垃圾数据传递给CreateProcess可能导致无法预料的结果,为了让CreateProcess正常工作,你必须将STARTUPINFO(EX)中没有用到的域清0。
在windows操作系统上,Popen通过调用 CreateProcess()来创建子进程,CreateProcess接收一个字符串參数,假设args是序列类型,系统将会通过 list2cmdline(...假设将參数shell设为 True,executable将指定程序使用的shell。在windows平台下,默认的shell由COMSPEC环境变量来指定。...假设參数shell设为true,程序将通过shell来运行。 參数cwd用于设置子进程的当前文件夹。 參数env是字典类型,用于指定子进程的环境变量。...在windows平台下,该方法将调用Windows API TerminateProcess()来结束子进程。 Popen.kill() 杀死子进程。...在异常对象中,包 括进程的returncode信息。 subprocess模块的内容就这么多。在Python手冊中,还介绍了怎样使用 subprocess来替换一些老的模块,老的函数的样例。
还观察到,当受害者打开文档时,将执行一个宏(workbook_open),该宏向受害者显示一个消息框,表明“ Microsoft Excel停止工作”(在宏中进行硬编码)。...所有活动都是通过包含逐行指令的批处理脚本执行的,并且嵌入在宏中,该宏在'APPDATA'目录中创建了名为's.bat'的批处理文件。 特点 以下是受害者调用或打开时在Excel文档中观察到的特征。...现在,在移至sqmap.dll之后,已经发现sqmap.dll设计为通过使用一些基于“ WinHTTP.h” API的Windows内置函数生成HTTP请求和响应,如下所示: [注意:从sqmap.dll...的原始格式中发现了相同的内容] 另外,在查看XLS文档的BIFF结构之后,我们发现它在二进制存储器中的地址5ch和8DH上使用WRITEACCESS&HIDEOBJ。...该恶意软件的设计与Windows环境兼容。 以下是此攻击的完整流程图。 通过分析发现行为 以下是此恶意软件的行为: 当受害者打开文档并启用宏时,受害者将看到以下消息框。
最后,使用特定 Microsoft 在线服务(如 SharePoint Online)的公司可以将文档存储在云中。...从 Backstage 中,单击“共享”命令,然后单击“保存到 SkyDrive”。系统将提示您使用 Windows Live 帐户登录 SkyDrive。...将显示四个默认文件夹 —“照片”、“视频”、“文档”和“公共文件夹”。前三个文件夹存储的项目仅供自己查看,“公共文件夹”则包含您要与他人共享的文件。双击其中某个文件夹,如“文档”。...在 SkyDrive 中,依次选择“文档”文件夹和您刚刚保存的文档,然后单击“查看”命令。随即显示一个协议,在您接受后文档才可以在您的浏览器中弹出。接受协议后,您能够更顺利地保存和打开在线文档。...Web Apps 在安装 Internet Explorer 7 和 8 的环境下才可运行;在 Windows、Linux 和 Mac 中需要安装 Firefox 3.5 或更高版本;在 Mac 中还需要安装
ERROR_FILE_NOT_FOUND 指定的文件设有找到 –ERROR_PATH_NOT_FOUND 指定的路径没有找到 其他: 这个函数和system()非常类似,只能运行.EXE文件,这样在WINDOWS...若用户机器中安装了多个浏览器,则该函数将根据Windows 9x/NT注册表中http协议处理程序(Protocols Handler)的设置确定启动哪个浏览器。 ...若用户机器中安装了多个邮件客户程序,则该函数将根据Windows 9x/NT注册表中mailto协议处理程序的设置确定启动哪个邮件客户程序。 ...到目前为止,有关文档中还没有提到过这么一个有用的函数,它能打开桌面上的任何文件,也能打开Internet URL。...如果将第二个参数“OPEN”改为“PRINT”或者“EXPLORE”,ShellExecute将能打印文件和打开文件夹。
有几个API函数都可以实现这些功能,但是在大多数情况下ShellExecute是更多的被使用的,同时它并不是太复杂。 ...若用户机器中安装了多个浏览器,则该函数将根据Windows 9x/NT注册表中http协议处理程序(Protocols Handler)的设置确定启动哪个浏览器。 ...若用户机器中安装了多个邮件客户程序,则该函数将根据Windows 9x/NT注册表中mailto协议处理程序的设置确定启动哪个邮件客户程序。 ... 说明: WIN32API函数CreateProcess用来创建一个新的进程和它的主线程,这个新进程运行指定的可执行文件。 ...如果有恶意的用户在系统编写了一个名为Program.exe的文件,那么任何调用CreateProcess函数,且在文件路径中使用Program Files文件夹的参数,都有可能会运行Program.exe
近期在野捕获的Office Word文档中发现QBot变体,但未发现其传播方式。本文将分析它在受害者机器上的工作方式及其使用的技术。...实际情况是恶意宏(VBA代码)在后台执行,并调用Document_Open函数,在“C:\Users\Public\”中创建“tmpdir”文件夹。然后将QBot有效负载下载到此文件夹中。...如果它不在分析设备中运行,它将继续在“%AppData%\ Microsoft \”文件夹下创建一个主文件夹,保存QBot过程和数据。...使用WMI运行QBot是比直接调用CreateProcess来保护进程更好。WMI由Windows进程“wmiprvse.exe”处理,该进程随后执行mavrihvu.exe。 ?...它通过调用API VirtualAllocate将每个部分从“ 307” PE结构加载到新分配的内存中。然后修复重定位数据并导入必要的API,使核心模块可以在“ explorer.exe”中执行。
宏是 Office 自带的一种高级脚本特性,通过 VBA 代码, 可以在 Office 中去完成某项特定的任务,而不必再重复相同的动作,目的是让用户文档中 的一些任务自动化。...而宏病毒是一种寄存在文档或模板的宏中的计算机病毒。一旦打开这样 的文档,其中的宏就会被执行,于是宏病毒就会被激活,转移到计算机上,并驻留在 Normal 模板上。...Visual Basic for Applications(VBA)是 Visual Basic 的一种宏语言,是微软开发出来在 其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。...双击 “ThisDocument” ,将原有内容全部清空,然后将 CobaltStrike 生成宏 payload 全部粘贴进去,保存并关闭该 VBA 编辑器 。...在 Linux,OSX 和 Windows 上运行。
宏是 Office 自带的一种高级脚本特性,通过 VBA 代码, 可以在 Office 中去完成某项特定的任务,而不必再重复相同的动作,目的是让用户文档中 的一些任务自动化。...而宏病毒是一种寄存在文档或模板的宏中的计算机病毒。一旦打开这样 的文档,其中的宏就会被执行,于是宏病毒就会被激活,转移到计算机上,并驻留在 Normal 模板上。...Visual Basic for Applications(VBA)是 Visual Basic 的一种宏语言,是微软开发出来在 其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。...在 Linux,OSX 和 Windows 上运行。...关掉 Word后,CS 上依旧是可以执行命令的 PS: VBA 宏代码解释:CobaltStrike 生成默认的 VBA 会导入四个 Windows API 函数,常见的 ShellCode 加载器 代码
有帮助文档:PyWin32.chm 文件类API在模块win32file中,进程类API在模块win32process中,win32con定义了所有的常量,,一些难以分类的API则在模块win32api...中(大部分是kernel32.dll导出的API) ctypes 调用C库printf打印输出 >>> import ctypes >>> # cdll = cdecl标准 windll = stdcall...win32process # 打开记事本程序,获得其句柄 >>> handle = win32process.CreateProcess('c:\\windows\\notepad.exe', '',...() # 将鼠标移动到坐标处 win32api.SetCursorPos((200, 200)) # 回车 win32api.keybd_event(13, 0, win32con.KEYEVENTF_EXTENDEDKEY...()) # 获取临时文件夹路径
你可以将数据从Spread中存到几种不同类型的文件中或者可以在Spread中打开几种不同类型的数据文件。...默认的,当你保存为Excel文件时,无论Spread的数据模型中存储的是什么,都将以BIFF8格式写出到文件或者流中。...ExcelOpenFlags或者ExcelSaveFlags枚举类型中的文档缓存选项允许用户打开,编辑,以及在不丢失高级文件内容和格式的情况下保存文件。...如果高级文档内容使用除了xls(x)文件之外的格式,那么 附加的文件就需要与xls(x)文件在同一文件夹。高级内容可以是宏,ActiveX控件, 数据连接,等等。...如果高级文档内容使用除了xls(x)文件之外的格式,那么 附加的文件就需要与xls(x)文件在同一文件夹。高级内容可以是宏,ActiveX控件,数据连接等。
领取专属 10元无门槛券
手把手带您无忧上云