小编Don*_*dro的帖子

英特尔针脚:检测运行过程

我创建了一个简单的pin工具,可以转储任何win32 CreateFileW调用.它工作正常,但当我尝试将它附加到已经运行的进程时,该过程只是终止.尝试了几个应用程序(记事本,wordpad,Internet Explorer),相同的结果.这是我使用的命令:

.\pin -pid 8804 -t dumpfile.dll
Run Code Online (Sandbox Code Playgroud)

我有一个提示尝试关闭多线程,如下所示:

.\pin -mt 0 -pid 8804 -t dumpfile.dll
Run Code Online (Sandbox Code Playgroud)

但它没有帮助.还尝试了另一个,开箱即用的pintool,也没有工作,所以问题不在我的pintool.有任何想法吗?

提前致谢!

c++ x86 instrumentation intel intel-pin

8
推荐指数
1
解决办法
2057
查看次数

用于跟踪 CreateFile 调用的 Pin 工具

我制作了一个 pin 工具来转储 CreatFile win32 调用(在我的例子中为 CreateFileW)及其返回值。它看起来像这样:

/* ... */

VOID Image(IMG img, VOID *v)
{
    RTN cfwRtn = RTN_FindByName(img, "CreateFileW");
    if (RTN_Valid(cfwRtn))
    {
        RTN_Open(cfwRtn);
    
        RTN_InsertCall(cfwRtn, IPOINT_BEFORE, (AFUNPTR)CreateFileWArg,
        IARG_ADDRINT, "CreateFileW",
        IARG_FUNCARG_ENTRYPOINT_VALUE, 0,
        IARG_END);
        RTN_InsertCall(cfwRtn, IPOINT_AFTER, (AFUNPTR)CreateFileWafter,
        IARG_FUNCRET_EXITPOINT_VALUE, IARG_END);

        RTN_Close(cfwRtn);
    }
}

/* ... */

VOID CreateFileWArg(CHAR * name, wchar_t * filename)
{
    TraceFile << name << "(" << filename << ")" << endl;
}

VOID CreateFileWafter(ADDRINT ret)
{
    TraceFile << "\tReturned handle: " << ret << endl;
}
Run Code Online (Sandbox Code Playgroud)

它给出了有趣的结果。例如,在一个只打开现有文件而不执行其他操作的小程序上,它给出:

CreateFileW(file.txt) …
Run Code Online (Sandbox Code Playgroud)

c++ winapi intel-pin

5
推荐指数
1
解决办法
2368
查看次数

标签 统计

c++ ×2

intel-pin ×2

instrumentation ×1

intel ×1

winapi ×1

x86 ×1