事情是这样的。前台界面程序(toolio_s.exe),启动后,在任务管理器中服务程序(我认为是)BlackTipServer.exe 自动在后台运行,toolio_s.exe 关闭后,BlackTipServer.exe 也自动退出了。我现在想自己编写一个前台程序,调用 BlackTipServer.exe 。
关键是现是什么也不知道。 只知道 toolio_s.exe 一启动 ,BlackTipServer.exe 就自动在后台运行了,在任务管理器中能看到。问题的关键是 toolio_s.exe 如何调用 BlackTipServer.exe ,并与其通信的。我简单试了一下。1. 用 DumpBin /exports BlackTipServer.exe 后,结果如下:
File Type : EXECUTABLE IMAGE summary
4000 .data
D000 .rdata
1000 .reloc
A000 .text看来不是COM组件,没有输出任何函数。2. 在控制面板里的服务里看了一下,BlackTipServer.exe 也没有注册为服务。3.直接运行 BlackTipServer.exe ,在DOS窗口中输出五句话:
argc = 1
bClientID = 0
bTestMode = 0
nBoardIndex = 0
bUseHscPci = 0 然后就弹出错误提示框, 内容为“SharcServer StartUp() error = 3; CreateFile 单击确定,程序就退出了。 看来是要给 BlackTipServer.exe 传递正确的参数才行。4. 用 UltraEdit32 直接打开 Toolio_s.exe ,查找ASCII串 "BlackTip" 找到几处, 有一处内容为:CimIOCard.ToolCommCardConstants.BlackTipClient.BittwareDSPCardChannel.ClientApp 到现在也不知道怎么自己编写前台的客户端程序来调用后台的 BlackTipServer.exe5. 用 OllyICE 调试了一下Toolio_s.exe,被汇编代码给弄蒙了。 大家给点提示,应该从那里入手。
关键是现是什么也不知道。 只知道 toolio_s.exe 一启动 ,BlackTipServer.exe 就自动在后台运行了,在任务管理器中能看到。问题的关键是 toolio_s.exe 如何调用 BlackTipServer.exe ,并与其通信的。我简单试了一下。1. 用 DumpBin /exports BlackTipServer.exe 后,结果如下:
File Type : EXECUTABLE IMAGE summary
4000 .data
D000 .rdata
1000 .reloc
A000 .text看来不是COM组件,没有输出任何函数。2. 在控制面板里的服务里看了一下,BlackTipServer.exe 也没有注册为服务。3.直接运行 BlackTipServer.exe ,在DOS窗口中输出五句话:
argc = 1
bClientID = 0
bTestMode = 0
nBoardIndex = 0
bUseHscPci = 0 然后就弹出错误提示框, 内容为“SharcServer StartUp() error = 3; CreateFile 单击确定,程序就退出了。 看来是要给 BlackTipServer.exe 传递正确的参数才行。4. 用 UltraEdit32 直接打开 Toolio_s.exe ,查找ASCII串 "BlackTip" 找到几处, 有一处内容为:CimIOCard.ToolCommCardConstants.BlackTipClient.BittwareDSPCardChannel.ClientApp 到现在也不知道怎么自己编写前台的客户端程序来调用后台的 BlackTipServer.exe5. 用 OllyICE 调试了一下Toolio_s.exe,被汇编代码给弄蒙了。 大家给点提示,应该从那里入手。
2 使用api monitor等工具监控toolio_s.exe进程,看看其是如何创建子进程的;
启动主要应该是命令行控制
ReadProcessMemory可以获取进程的启动命令行
你可以先看看BlackTipServer.exe的启动命令行是怎么写的
我在DOS下运行 BlackTipServer.exe 1 0 0 ,发现BalckTipServer.exe 运行不报错了。
但是我还没弄明白BlackTipServer.exe 到底是什么? 是ATL Server?(我找注册表,DUMPBIN了都没看出来,就像是一个但纯的一个EXE)。我关键是先知道它是如何与 toolio_s.exe 进行通信的。我要自己编写一个 toolio_s.exe程序。 难道是 toolio_s.exe 创建完 BlackTipServer.exe 后,通过进程通信的方式访问BlackTipServer.exe ?
那么怎么能知道他们是如何通信的?对了。我看现象是 toolio_s.exe 启动后, BlackTipServer.exe 就启动。那位能告诉我,如何获得是那个程序调用的BlackTipServer.exe ? 也许在他俩之间还有别的程序在起作用。