使用 logger.exe 嗅探系统调用
Using logger.exe to sniff system calls
我有一个应用程序使用一些串行端口并运行一些系统调用,例如 EscapeCommFunction
,我想调试它。基本上我想要在 linux 上最接近 strace
。我发现最好的候选似乎是 logger.exe 但我不知道如何使用它。
我试过打电话
logger.exe <application> <arg1> <arg2> <arg3>
并在出现的对话框中尝试了所有对我有意义的组合。结果总是一样的:程序成功完成,记录器上没有输出window,甚至在我关闭记录器后也没有创建任何日志文件。
我同意@Alex K. 并建议API Monitor。
只需使用望远镜图标找到您要监控的方法并在其上添加复选标记。
然后从 "Running processes" 选项卡中选择一个进程或监视一个新进程(API 监视器将为您启动它)。
请注意 API 监视器有 2 个版本:x86 和 x64,您应该为要监视的应用程序选择正确的位数。
您还可以在方法上设置断点,这将在目标线程中触发一个INT3。 "unhandled exception dialog" 将弹出,您可以选择一个调试器(在我的例子中是 Visual Studio)。
关于 Chrome 请求:我正在使用 Serial Monitor as the app, enabled developer mode, inspecting demo.html
. I figured out the correct process using the crosshair cursor of Process Explorer 进行测试。然后我按照您的建议创建了代码段
chrome.serial.connect("COM1", {
bitrate: 9200
}, function(i) {
chrome.serial.setControlSignals(i.connectionId, {
dtr: false
}, function() {
console.log("done");
});
});
和运行它。这是结果:
日志文件始终在桌面 logexts subdir
中创建 not alterable
C:\Documents and Settings\Admin\Desktop>DIR /S /B LOGE*
File Not Found
执行记录器
C:\Documents and Settings\Admin\Desktop>LOGGER CALC.EXE
- 一旦记录器 window 打开
- select 在左侧窗格中需要的 api 并单击包括
单选按钮
- 默认情况下 select 不会编辑任何内容,也不会记录任何内容
- 创建的 lgv 文件将不包含任何内容
- 您需要 select api 并将它们包含在日志中
- 您可以为专门的日志记录编写自己的清单文件
- 在你的 session 关闭后 logger.exe 你将拥有一个 lgv
文件
- 您可以在 logviewer.exe 中打开此 lgv 文件,使用文件 -> 打开否
命令行选项
已为 session
创建子目录
C:\Documents and Settings\Admin\Desktop>DIR /S /B LOGE*
C:\Documents and Settings\Admin\Desktop\LogExts
导航到子目录并转储目录结构
C:\Documents and Settings\Admin\Desktop>CD LogExts
C:\Documents and Settings\Admin\Desktop\LogExts>ls -la
total 32
drwxr-xr-x 4 Admin Administ 0 Dec 2 10:31 .
drwxr-xr-x 1 Admin Administ 0 Dec 2 10:31 ..
-rw-r--r-- 1 Admin Administ 64304 Dec 2 10:33 CALC.EXE.lgv <---
-rw-r--r-- 1 Admin Administ 0 Dec 2 10:31 CALC.EXE.txt
打开logviewr查看lgv文件
C:\Documents 和 Settings\Admin\Desktop\LogExts>logviewer
我有一个应用程序使用一些串行端口并运行一些系统调用,例如 EscapeCommFunction
,我想调试它。基本上我想要在 linux 上最接近 strace
。我发现最好的候选似乎是 logger.exe 但我不知道如何使用它。
我试过打电话
logger.exe <application> <arg1> <arg2> <arg3>
并在出现的对话框中尝试了所有对我有意义的组合。结果总是一样的:程序成功完成,记录器上没有输出window,甚至在我关闭记录器后也没有创建任何日志文件。
我同意@Alex K. 并建议API Monitor。
只需使用望远镜图标找到您要监控的方法并在其上添加复选标记。
然后从 "Running processes" 选项卡中选择一个进程或监视一个新进程(API 监视器将为您启动它)。
请注意 API 监视器有 2 个版本:x86 和 x64,您应该为要监视的应用程序选择正确的位数。
您还可以在方法上设置断点,这将在目标线程中触发一个INT3。 "unhandled exception dialog" 将弹出,您可以选择一个调试器(在我的例子中是 Visual Studio)。
关于 Chrome 请求:我正在使用 Serial Monitor as the app, enabled developer mode, inspecting demo.html
. I figured out the correct process using the crosshair cursor of Process Explorer 进行测试。然后我按照您的建议创建了代码段
chrome.serial.connect("COM1", {
bitrate: 9200
}, function(i) {
chrome.serial.setControlSignals(i.connectionId, {
dtr: false
}, function() {
console.log("done");
});
});
和运行它。这是结果:
日志文件始终在桌面 logexts subdir
中创建 not alterable
C:\Documents and Settings\Admin\Desktop>DIR /S /B LOGE*
File Not Found
执行记录器
C:\Documents and Settings\Admin\Desktop>LOGGER CALC.EXE
- 一旦记录器 window 打开
- select 在左侧窗格中需要的 api 并单击包括 单选按钮
- 默认情况下 select 不会编辑任何内容,也不会记录任何内容
- 创建的 lgv 文件将不包含任何内容
- 您需要 select api 并将它们包含在日志中
- 您可以为专门的日志记录编写自己的清单文件
- 在你的 session 关闭后 logger.exe 你将拥有一个 lgv 文件
- 您可以在 logviewer.exe 中打开此 lgv 文件,使用文件 -> 打开否 命令行选项
已为 session
创建子目录C:\Documents and Settings\Admin\Desktop>DIR /S /B LOGE*
C:\Documents and Settings\Admin\Desktop\LogExts
导航到子目录并转储目录结构
C:\Documents and Settings\Admin\Desktop>CD LogExts
C:\Documents and Settings\Admin\Desktop\LogExts>ls -la
total 32
drwxr-xr-x 4 Admin Administ 0 Dec 2 10:31 .
drwxr-xr-x 1 Admin Administ 0 Dec 2 10:31 ..
-rw-r--r-- 1 Admin Administ 64304 Dec 2 10:33 CALC.EXE.lgv <---
-rw-r--r-- 1 Admin Administ 0 Dec 2 10:31 CALC.EXE.txt
打开logviewr查看lgv文件 C:\Documents 和 Settings\Admin\Desktop\LogExts>logviewer