Articles of 进程

创build一个bat文件来退出FFMPEG(Windows)

大家好,我正在使用这个bat文件来捕获我的屏幕。 ffmpeg -f dshow -i video=screen-capture-recorder -r 240001001 -q 1 lma_recording.avi 当按下qbutton时,video捕捉停止。 不过,我想停止与另一个bat文件捕获屏幕。 我试过这个: taskkill /im ffmpeg.exe 没有运气 有什么build议么?

SetThreadContext x64易失性寄存器

我有一个SetThreadContext的问题。 我不能更改任何易失性寄存器(表格在这里 )。 data.context.ContextFlags = CONTEXT_FULL; SuspendThread(hThread); GetThreadContext(hThread, &data.context); … CONTEXT* ctx = &data.context; ctx->ContextFlags = CONTEXT_CONTROL | CONTEXT_INTEGER; ctx->Rax = (DWORD64)0x1000; ctx->Rcx = (DWORD64)-1; ctx->Rip = (DWORD64)allocatedMemory; ctx->R10 = (DWORD64)0x12345678; ctx->Rbp = (DWORD64)0xFFFFFFFF; SetThreadContext(hThread, ctx); ResumeThread(hThread); 该代码更改Rip和Rbp寄存器,因为它们是非易失性的。 GetLastError返回0.使用THREAD_SET_CONTEXT |打开的线程 THREAD_GET_CONTEXT | THREAD_SUSPEND_RESUME | THREAD_SET_INFORMATION权限。 为什么我不能在x64应用程序中更改易失性寄存器? 在x86应用程序中,我可以更改任何寄存器(这是无关紧要的)。 PS是的,我试图用ctx-> ContextFlags = CONTEXT_FULL调用SetThreadContext;

只使用Python内置模块检查进程是否在Windows中运行

我知道有两种方法可以使用psutil或win32ui模块来完成这个任务。 但是,我想知道是否有一个select,只使用Python 内置模块 ? 我也发现了这个问题: 使用Python检查Windows上是否存在PID,而不需要库 但在这种情况下,对象是由PID ,我想要使用进程名称。

如何在Windows上的x86-64体系结构中汇编结构化exception处理程序?

在x86中,您可以简单地使用以下3条说明注册您的处理程序。 push addrOfExceptionHandler push dword [fs:0] mov [fs:0],esp 但是这在64位Windows上不起作用。 我读过x64exception处理程序是基于表和Visual C ++的__try和__except块硬连接到exception目录。 这是否意味着微软完全放弃了这个老方法? 有没有办法从代码编程注册处理程序呢?

什么是“Processes.GetProcessesByName(”PROCESSNAME“)”的C版本?

我已经在C#中使用Process.GetProcessesByName(“PROCESSNAME”)来检查特定的项目是否正在运行。 我必须为一个较旧的Windows XPembedded式版本创build一个C程序,它只能在另一个程序也在运行时运行。 我如何检查程序是否正在运行?

使用x64注入器的x86 dll注入x86目标

我有一个麻烦,做什么标题说…我做了一个注入与x86到x86和x64到x64,但从x64注入x86(与x86 dll)不起作用码: #include <Windows.h> #include <string> bool InjectDll(DWORD processId, std::string dllPath) { HANDLE hThread, hProcess; void* pLibRemote = 0; // the address (in the remote process) where // szLibPath will be copied to; HMODULE hKernel32 = GetModuleHandle("Kernel32"); char DllFullPathName[_MAX_PATH]; GetFullPathName(dllPath.c_str(), _MAX_PATH, DllFullPathName, NULL); // Get process handle hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processId); // copy file […]

CreateProcess与CREATE_NEW_CONSOLE并保持控制台窗口打开

我有一个工作的命令行应用程序,它使用Windows API在新的控制台窗口中创build一个subprocess。 我正在使用CREATE_NEW_CONSOLE标志,但我需要一种方法来保持新的打开的窗口closures,当新的进程退出。 这里是现有的代码: STARTUPINFO si; LPCTSTR lpAppName = "\\\\fs\\storage\\QA\\Mason\\psexec\\PSExec.exe"; string lpstr = "\\\\fs\\storage\\QA\\Mason\\psexec\\PSExec.exe \\\\" + target + " /accepteula -u user -p pass -s -realtime \\\\fs\\storage\\QA\\Mason\\psexec\\RI.bat"; LPTSTR lpCmd = CA2T(lpstr.c_str()); PROCESS_INFORMATION pi; // This structure has process id DWORD exitCode = 9999; // Process exit code ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); ZeroMemory(&pi, sizeof(pi)); // […]

LoadLibraryA与ntdll.dll(x64程序集)中的User32.dll崩溃

所以我有一个程序集的代码块,它初始化一个程序,parsingkernel32,findGetProcAddress,然后findLoadLibarayA来加载User32.dll。 它工作到LoadLibraryA的点。 它在函数调用崩溃,但我可以看到debugging器中加载User32.dll。 如果我尝试在不同的模块(如Kernel32.dll)上使用LoadLibraryA,则返回并成功。 这里是完整的来源,如果你想通过https://gist.github.com/mojobojo/921a5af897e86bb940a2 Exception thrown at 0x00007FFAFAE8E91C (ntdll.dll) in Small.exe: 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF. 这是要加载user32的片段。 mov rcx, ActualAddress + User32DllStr ; ActualAddress is the program address in memory call rax ; LoadLibararyA cmp rax, 0 je EndFunction ; Failed to open user32.dll LoadLibraryAStr: db "LoadLibraryA", 0 这里是看看调用堆栈。 ntdll.dll!RtlDosPathNameToRelativeNtPathName() Unknown ntdll.dll!LdrpResolveDllName() Unknown […]

为什么Get-ChildItem(或ls或dir)返回在x86和x64 PowerShell控制台上执行的不同结果

我在Windows Server机器上启动了用于x86的Powershell控制台并执行: get-childitem C:\Windows\System32\WindowsPowerShell\v1.0\Modules\*s 我得到以下列表: CimCmdlets,DirectAccessClientComponents来说,KDS,Microsoft.PowerShell.Diagnostics,NetQoS的,NetworkConnectivityStatus,PSDiagnostics,ScheduledTasks,TLS 然后,我启动了x64控制台并执行相同的命令,并获得更多的DIR列表: BestPractices ,CimCmdlets,DirectAccessClientComponents, FailoverClusters ,Kds,Microsoft.PowerShell.Diagnostics,NetQos,NetworkConnectivityStatus, NFS ,PSDiagnostics,ScheduledTasks, SmbWitness ,TLS 我检查了硬链接的FailoverClusters模块文件(我实际上试图导入): PS C:\windows\system32\WindowsPowerShell\v1.0\Modules> fsutil hardlink list C:\Windows\System32\WindowsPowerShell\v1.0\Modules\FailoverClusters\failoverclusters.psd1 我得到以下结果: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ Modules \ FailoverClusters \ FailoverClusters.psd1 \ Windows \ WinSxS \ amd64_microsoft-windows-f..rcluster-powershell_31bf3856ad364e35_6.3.9600.17112_none_8555e001e29b71bc \ FailoverClusters.psd1 (注意:看起来像目录本身没有链接,fsutil只返回一个条目 – 与dirname相同) 所以问题是:为什么Get-ChildItem在x86与x64 Get-ChildItem主机上的工作方式不同? 这实际上是如何工作的? 是的,我明白,FailoverClusters模块不能在x86架构上工作,但仍然…我打破了我的头,试图找出错误在哪里(意外编译我的x86架构的C#主机),因为它总是返回类似“未find模块”或“找不到文件”….

操作系统内核是否和IPC一样与进程通信?

一个进程使用IPC(进程间通信)的各种方式与另一个进程进行通信 ,例如共享内存,消息传递,信令? 我知道一个操作系统的内核可以和一个使用信号的进程进行通信 ,如果我是对的,那么同样的信号也是IPC的一种方式。 操作系统内核是否与一个进程或进程使用IPC的其他方式进行通信,例如共享内存,消息传递? 如果需要具体,我想知道最多的Linux内核,也很高兴知道Windows内核。