├── LICENSE
├── README.md
└── win32
├── Corelan_HeapLog
├── Corelan_HeapLog.cpp
├── Corelan_HeapLog.opensdf
├── Corelan_HeapLog.sdf
├── Corelan_HeapLog.sln
├── Corelan_HeapLog.v11.suo
├── Corelan_HeapLog.vcxproj
├── Corelan_HeapLog.vcxproj.filters
├── Debug
│ ├── CL.read.1.tlog
│ ├── CL.write.1.tlog
│ ├── Corelan_HeapLog.Build.CppClean.log
│ ├── Corelan_HeapLog.dll
│ ├── Corelan_HeapLog.exp
│ ├── Corelan_HeapLog.lastbuildstate
│ ├── Corelan_HeapLog.lib
│ ├── Corelan_HeapLog.log
│ ├── Corelan_HeapLog.obj
│ ├── Corelan_HeapLog.pdb
│ ├── Corelan_HeapLog.write.1.tlog
│ ├── cl.command.1.tlog
│ ├── link.command.1.tlog
│ ├── link.read.1.tlog
│ ├── link.write.1.tlog
│ └── vc110.pdb
├── makefile
└── makefile.rules
└── createpintool.py
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2015, Corelan GCV
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without
5 | modification, are permitted provided that the following conditions are met:
6 |
7 | * Redistributions of source code must retain the above copyright notice, this
8 | list of conditions and the following disclaimer.
9 |
10 | * Redistributions in binary form must reproduce the above copyright notice,
11 | this list of conditions and the following disclaimer in the documentation
12 | and/or other materials provided with the distribution.
13 |
14 | * Neither the name of pin nor the names of its
15 | contributors may be used to endorse or promote products derived from
16 | this software without specific prior written permission.
17 |
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
22 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 |
29 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # pin
2 | Collection of pin tools
3 |
4 |
5 | ## General information
6 |
7 | Unless stated otherwise, all pin tools were created with Visual Studio 2012 Express, and written in C++
8 | You can download Visual Studio Express 2012 for Windows Desktop here: https://www.microsoft.com/en-us/download/details.aspx?id=34673
9 |
10 | To download & install the corresponding version of Pin, check this link:
11 | https://software.intel.com/en-us/articles/pintool-downloads
12 |
13 |
14 | ## Creating a new Pin project folder for use with Visual Studio
15 |
16 | This repository contains a simple python script `createpintool.py` that allows you to create a new Visual Studio project folder, based on the "MyPinTool" example folder.
17 | You can find the script in the `win32` folder in this repository.
18 |
19 | Place the script into the source/tools folder inside your pin folder structure.
20 | Run the script from that working folder, and specify the name of the new project.
21 |
22 | Example:
23 | ```
24 | C:\pin\vc11\source\tools>python createpintool.py MyNewProjectName
25 | [+] Creating new PIN project MyNewProjectName
26 | - Copying clean project
27 | [+] Updating project files
28 | - Processing makefile -> makefile
29 | - Processing makefile.rules -> makefile.rules
30 | - Processing MyPinTool.cpp -> MyNewProjectName.cpp
31 | - Processing MyPinTool.vcxproj -> MyNewProjectName.vcxproj
32 | - Processing MyPinTool.vcxproj.filters -> MyNewProjectName.vcxproj.filters
33 | [+] Done
34 | ```
35 |
36 |
37 | ## Notes
38 |
39 | 1. For Visual Studio C++ 2012, you need vc11, not vc12!
40 | 2. You may have to disable SAFESEH.
41 | 3. All pintools must be considered "proof of concept" and come without any warranty whatsoever. The pintools have only been tested in a very small number of situations and may not work on your system. I do, however, encourage everyone to improve the code, performance, stability and/or submit Pull Requests to add interesting functionality.
42 | 4. I have compiled all pin tools in "Debug" mode.
43 | 5. If your pin tool doesn't run (i.e. if it terminates almost immediately after launching it), launch pin with the `-xyzzy -mesgon log_win` options, to activate some verbose logging. A file `pintool.log` will be created in case of C++ errors.
44 | 6. The Corelan_HeapLog pin tool doesn't always end up launching the process. Especially with apps that spawn a lot of threads (IE, etc), I've been seeing weird errors in pintool.log. (Something like `E:Unexpected memory deallocation request of aligned memory`. Not sure what to do with it or how to fix it. Pin bug ?).
45 | 7. Remove *.log files before running the Corelan_HeapLog pin tool again. Also, make sure any relevant previous processes are killed before launching a new pin instance.
46 | 8. Pin may continue to write output to the log file(s) even after the instrumented process looks like it's gone. Wait for all processes to properly finish & terminate before accessing log files.
47 | 9. I wrote this pintool in just a few days, after spending about a week studying C++ basics from Bjarne Stroustrup's books. I am fully aware my code can be optimized etc. I will update/improve as I learn how to write better code.
48 |
49 | ## Available pintools in this repository
50 |
51 | ### 1. Corelan_HeapLog
52 | This pintool allows you to log all calls to RtlAllocateHeap, RtlReAllocateHeap, VirtualAlloc and RtlFreeHeap.
53 | Output is written to `corelan_heaplog.log`, unless you have specified the `-splitfiles 1` option. This option will tell the pin tool to store output into `corelan_heaplog_.log` files instead (Fresh file for every process)
54 | By default, output will be appended to `corelan_heaplog.log`. (In other words, make sure to put the file aside if you're instrumenting a different app)
55 | Exceptions are written to `corelan_heaplog_exception.log`. (One file, exceptions are appended to this file)
56 |
57 | You can specify a couple of command line options:
58 | `-logalloc ` : enable or disable logging allocations by setting value to 1 or 0
59 | `-logfree ` : enable or disable logging free operations by setting value to 1 or 0
60 | `-timestamp ` : enable or disable showing timestamp of heap operation by setting value to 1 or 0
61 | `-splitfiles ` : enable or disable splitting output files into files that contain reference to the PID. Set value to 1 or 0
62 | `-silent ` : enable or disable writing allocs and frees to output file(s). Set value to 1 or 0
63 | `-bufferoutput `: enable or disable buffering output to memory before writing to disk. Set value to 1 or 0
64 | Both log settings are enabled by default.
65 | Timestamp is disabled by default (as it may slow down the process a tiny little bit).
66 | The splitfiles option is disabled by default.
67 | The silent option is disabled by default. Enabling this option will speed up the process (as the cost of writing entries to file will be gone). Of course, this only makes sense if you're only interested in seeing the exception context.
68 | The bufferoutput option is enabled by default.
69 | If you are logging alloc and free operations, then this pintool will attempt to detect double free situations.
70 |
71 | The pintool *should* be capable of instrumenting child processes, provided that you have specified the `-follow-execv` pin command line option.
72 |
73 | Example:
74 | ```C:\pin\vc11>pin -follow-execv -t c:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.dll -timestamp 1 -logfree 0 -splitfiles 0 -- "c:\Program Files (x86)\Internet Explorer\iexplore.exe" http://127.0.0.1:8080/blah.html```
75 |
76 | Example output of corelan_heaplog_exception.log:
77 | ```
78 | PID 3000 | Exception context:
79 | EIP: 0x61EDE1CB (C:\Windows\SysWOW64\mshtml.dll)
80 | EAX: 0x160AAFA8 rtlallocateheap(0x144) rtlfreeheap(0x144) rtlallocateheap(0x58) rtlfreeheap(0x58)
81 | EBX: 0x13346F30 rtlallocateheap(0xd0)
82 | ECX: 0x00000052
83 | EDX: 0x00000000
84 | EBP: 0x0B79D6C4
85 | ESP: 0x0B79D670
86 | ESI: 0x00000000
87 | EDI: 0x160AAFA8 rtlallocateheap(0x144) rtlfreeheap(0x144) rtlallocateheap(0x58) rtlfreeheap(0x58)
88 |
89 | Closing exception log file for PID 3000
90 | ############## EOF
91 | ```
92 | If a register contains a value that belongs to a heap chunk, Corelan_HeapLog will show all heap related operations (alloc & free) for that chunk in chronological order.
93 | This should make it easier to detect Use After Free cases (i.e. use of a chunk that has been freed. See example output, EAX & EDI)
94 | Hint: if you're interested in finding UAF, don't forget to enable full page heap mode (+hpa) first for the process that you're going to instrument.
--------------------------------------------------------------------------------
/win32/Corelan_HeapLog/Corelan_HeapLog.cpp:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | This simple pin tool allows you to trace/log Heap related operations
4 | written by corelanc0d3r
5 | www.corelan.be
6 |
7 | Copyright (c) 2015, Corelan GCV
8 | All rights reserved.
9 |
10 | Redistribution and use in source and binary forms, with or without
11 | modification, are permitted provided that the following conditions are met:
12 |
13 | * Redistributions of source code must retain the above copyright notice, this
14 | list of conditions and the following disclaimer.
15 |
16 | * Redistributions in binary form must reproduce the above copyright notice,
17 | this list of conditions and the following disclaimer in the documentation
18 | and/or other materials provided with the distribution.
19 |
20 | * Neither the name of pin nor the names of its
21 | contributors may be used to endorse or promote products derived from
22 | this software without specific prior written permission.
23 |
24 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
28 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
30 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
32 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34 |
35 | */
36 |
37 | #include "pin.H"
38 | namespace WINDOWS
39 | {
40 | #include
41 | }
42 | #include
43 | #include
44 | #include
45 | #include
46 | #include
47 | #include
48 |
49 | /* ================================================================== */
50 | // Global variables
51 | /* ================================================================== */
52 |
53 |
54 | BOOL LogAlloc = true;
55 | BOOL LogFree = true;
56 | BOOL ShowTimeStamp = false;
57 | BOOL SplitFiles = false;
58 | BOOL StaySilent = false;
59 | BOOL BufferOutput = true;
60 | TLS_KEY alloc_key;
61 | FILE* LogFile;
62 | FILE* ExceptionLogFile;
63 | std::map chunksizes; // used to collect info from all threads
64 | std::map mapFree; // used to remember all frees and the SRP
65 | PIN_LOCK lock;
66 | int nrLogEntries = 0;
67 |
68 | /* ================================================================== */
69 | // Function declarations
70 | /* ================================================================== */
71 |
72 | void saveToLog(FILE*, const char * fmt, ...);
73 |
74 |
75 | /* ================================================================== */
76 | // Classes
77 | /* ================================================================== */
78 |
79 | class CLogEntry{
80 | public:
81 | // constructor
82 | CLogEntry(FILE* LogF, std::string entrystr)
83 | {
84 | LogFileRef = LogF;
85 | entry = entrystr;
86 | }
87 |
88 | FILE* getLogFile()
89 | {
90 | return LogFileRef;
91 | }
92 |
93 | string getEntry()
94 | {
95 | return entry;
96 | }
97 |
98 | private:
99 | FILE* LogFileRef;
100 | std::string entry;
101 | };
102 |
103 | vector arrOutputBuffer;
104 |
105 |
106 |
107 | class CModuleImage
108 | {
109 | public:
110 | // constructor
111 | CModuleImage(IMG thisimage)
112 | {
113 | ImageName = IMG_Name(thisimage);
114 | ImageEnd = IMG_HighAddress(thisimage);
115 | ImageBase = IMG_LowAddress(thisimage);
116 | }
117 |
118 | void save_to_log()
119 | {
120 | saveToLog(LogFile, "** Module loaded at 0x%p - 0x%p : %s **\n", ImageBase, ImageEnd, ImageName);
121 | }
122 |
123 | string getName()
124 | {
125 | return ImageName;
126 | }
127 |
128 | ADDRINT getBase()
129 | {
130 | return ImageBase;
131 | }
132 |
133 | ADDRINT getEnd()
134 | {
135 | return ImageEnd;
136 | }
137 |
138 | private:
139 | string ImageName;
140 | ADDRINT ImageBase;
141 | ADDRINT ImageEnd;
142 | };
143 |
144 |
145 | class CHeapOperation
146 | {
147 | public:
148 | string operation_type;
149 | ADDRINT chunk_start;
150 | WINDOWS::DWORD chunk_size;
151 | ADDRINT chunk_end;
152 | ADDRINT saved_return_pointer;
153 | string srp_imagename;
154 | time_t operation_timestamp;
155 |
156 | // constructor, only used to initialize private var currentpid
157 | CHeapOperation(bool is_this_an_alloc)
158 | {
159 | currentpid = PIN_GetPid();
160 | isalloc = is_this_an_alloc;
161 | }
162 |
163 | // member functions to perform check on current address
164 | void check_addy()
165 | {
166 | // it doesn't make sense to analyze if we're not tracking data in the first place
167 | if (LogAlloc && LogFree)
168 | {
169 | // is this an alloc or free ?
170 | if (isalloc)
171 | {
172 | // alloc
173 | // try to remove item from freelist. Doesn't matter if item doesn't exist yet
174 | try
175 | {
176 | mapFree.erase(chunk_start);
177 | }
178 | catch ( ... )
179 | {
180 | saveToLog(LogFile,"***Exception: Unable to remove element from free list\n");
181 | }
182 | }
183 | else
184 | {
185 | // free
186 | // if item is already in free list, then log this as a double free
187 | if (mapFree.find( chunk_start ) != mapFree.end())
188 | {
189 | saveToLog(LogFile, "PID: %u >>> Double Free of 0x%p from 0x%p (%s) <<<\n", currentpid, chunk_start, saved_return_pointer, srp_imagename);
190 | }
191 | else
192 | {
193 | // add to map
194 | try
195 | {
196 | mapFree[chunk_start] = saved_return_pointer;
197 | }
198 | catch ( ... )
199 | {
200 | saveToLog(LogFile, "***Exception: Unable to add freed chunk to list\n");
201 | }
202 | }
203 | }
204 | }
205 | }
206 |
207 |
208 | // member function to write info about current heap operation to log file
209 | void save_to_log()
210 | {
211 | char * ascii_time;
212 | if (ShowTimeStamp)
213 | {
214 | struct tm * timeinfo;
215 | time ( & operation_timestamp );
216 | timeinfo = localtime ( & operation_timestamp);
217 | ascii_time = strtok(asctime(timeinfo),"\n");
218 | }
219 | else
220 | {
221 | ascii_time = "";
222 | }
223 |
224 | if (!StaySilent)
225 | {
226 | if (operation_type == "rtlallocateheap")
227 | {
228 | saveToLog(LogFile, "PID: %u | %s | alloc(0x%x) = 0x%p from 0x%p (%s)\n",currentpid,ascii_time,chunk_size,chunk_start,saved_return_pointer,srp_imagename);
229 | }
230 | else if (operation_type == "rtlreallocateheap")
231 | {
232 | saveToLog(LogFile, "PID: %u | %s | realloc(0x%x) at 0x%p from 0x%p (%s)\n",currentpid,ascii_time,chunk_size,chunk_start,saved_return_pointer,srp_imagename);
233 | }
234 | else if (operation_type == "virtualalloc")
235 | {
236 | saveToLog(LogFile, "PID: %u | %s | virtualalloc(0x%x) at 0x%p from 0x%p (%s)\n",currentpid,ascii_time,chunk_size,chunk_start,saved_return_pointer,srp_imagename);
237 | }
238 | else if (operation_type == "rtlfreeheap")
239 | {
240 | saveToLog(LogFile, "PID: %u | %s | free(0x%p) from 0x%p (size was 0x%x) (%s)\n",currentpid,ascii_time, chunk_start,saved_return_pointer,chunk_size,srp_imagename);
241 | }
242 | }
243 | }
244 |
245 | private:
246 | int currentpid;
247 | bool isalloc;
248 | };
249 |
250 |
251 | vector arrAllOperations;
252 | vector arrLoadedModules;
253 |
254 |
255 | /* ===================================================================== */
256 | // Command line switches
257 | /* ===================================================================== */
258 |
259 | KNOB KnobLogAlloc(KNOB_MODE_WRITEONCE, "pintool",
260 | "logalloc", "1", "Log heap allocations (RtlAllocateHeap, RtlReAllocateHeap and VirtualAlloc)");
261 |
262 | KNOB KnobLogFree(KNOB_MODE_WRITEONCE, "pintool",
263 | "logfree", "1", "Log heap free operations (RtlFreeHeap)");
264 |
265 | KNOB KnobShowTimeStamp(KNOB_MODE_WRITEONCE, "pintool",
266 | "timestamp", "0", "Show timestamps in output");
267 |
268 | KNOB KnobSplitFiles(KNOB_MODE_WRITEONCE, "pintool",
269 | "splitfiles", "0", "Split output into PID-specific files");
270 |
271 | KNOB KnobStaySilent(KNOB_MODE_WRITEONCE, "pintool",
272 | "silent", "0", "Silent mode, do not log allocs & frees to log file");
273 |
274 | KNOB KnobBufferOutput(KNOB_MODE_WRITEONCE, "pintool",
275 | "bufferoutput", "1", "Buffer output in memory before writing to file. Dump contents to file 5000 lines at once");
276 |
277 | /* ===================================================================== */
278 | // Utilities
279 | /* ===================================================================== */
280 |
281 | INT32 Usage()
282 | {
283 |
284 | return -1;
285 | }
286 |
287 | void dumpBufferToFile()
288 | {
289 | PIN_LockClient();
290 | for (CLogEntry le : arrOutputBuffer)
291 | {
292 | FILE* LogF = le.getLogFile();
293 | string entry = le.getEntry();
294 | fprintf(LogF, "%s", entry);
295 | }
296 | // I won't fflush the output buffer here, for performance reasons.
297 | arrOutputBuffer.clear();
298 | PIN_UnlockClient();
299 | }
300 |
301 |
302 | void CloseLogFile()
303 | {
304 | // first dump remaining log entries to file, if any
305 | dumpBufferToFile();
306 | // wrap up
307 | std::fprintf(ExceptionLogFile,"\nClosing log file for PID %u\n", PIN_GetPid());
308 | std::fprintf(LogFile, "############## EOF\n");
309 | fflush(LogFile);
310 | fclose(LogFile);
311 | }
312 |
313 | void CloseExceptionLogFile()
314 | {
315 | std::fprintf(ExceptionLogFile,"Closing exception log file for PID %u\n", PIN_GetPid());
316 | std::fprintf(ExceptionLogFile, "############## EOF\n");
317 | fflush(ExceptionLogFile);
318 | fclose(ExceptionLogFile);
319 | }
320 |
321 |
322 | string getCurrentDateTimeStr()
323 | {
324 | time_t thistime;
325 | thistime = time(0);
326 | char * ascii_time;
327 | struct tm * timeinfo;
328 | time ( & thistime);
329 | timeinfo = localtime ( & thistime);
330 | ascii_time = strtok(asctime(timeinfo),"\n");
331 | stringstream returnval;
332 | returnval << ascii_time;
333 | return returnval.str();
334 | }
335 |
336 |
337 | WINDOWS::DWORD findSize(ADDRINT address)
338 | {
339 | // search in map for key address
340 | std::map::iterator it;
341 |
342 | it = chunksizes.find(address);
343 | if (it != chunksizes.end())
344 | {
345 | return it->second;
346 | }
347 | return 0;
348 | }
349 |
350 | void saveModToArray(CModuleImage& modimage)
351 | {
352 | // saving, just in case I want to do something with it later
353 | arrLoadedModules.push_back(modimage);
354 | }
355 |
356 |
357 | string getModuleImageNameByAddress(ADDRINT address)
358 | {
359 | string returnval = "";
360 | IMG theimage;
361 | PIN_LockClient();
362 | theimage = IMG_FindByAddress(address);
363 | PIN_UnlockClient();
364 | if (IMG_Valid(theimage))
365 | {
366 | returnval = IMG_Name(theimage);
367 | }
368 | return returnval;
369 | }
370 |
371 |
372 | string getAddressInfo(ADDRINT address)
373 | {
374 | stringstream ss;
375 | string info = "";
376 | string modulename = "";
377 | if (address > 0)
378 | {
379 | // check if address belongs to module or is part of heap
380 | modulename = getModuleImageNameByAddress(address);
381 | if (!modulename.empty())
382 | {
383 | ss << "(" << modulename << ")";
384 | info = ss.str();
385 | }
386 | else
387 | {
388 | ss << "";
389 | for (CHeapOperation op : arrAllOperations)
390 | {
391 | if (op.chunk_start <= address && address <= op.chunk_end)
392 | {
393 | ss << op.operation_type << "(0x" << std::hex << op.chunk_size << ") ";
394 | }
395 | }
396 | info = ss.str();
397 | }
398 | }
399 | return info;
400 | }
401 |
402 |
403 | // wrapper to either write output to LogFile directly, or to buffer it first
404 | void saveToLog(FILE* Log, const char * fmt, ...)
405 | {
406 | va_list args;
407 | // convert to string first
408 |
409 | char entry [512]; // truncate after that
410 | va_start(args, fmt);
411 | vsnprintf(entry, 511, fmt, args);
412 | va_end(args);
413 |
414 | if (BufferOutput)
415 | {
416 | CLogEntry thisentry(Log, entry);
417 | arrOutputBuffer.push_back(thisentry);
418 | ++nrLogEntries;
419 | // check if we should dump to file now
420 | if (nrLogEntries > 5000)
421 | {
422 | dumpBufferToFile();
423 | nrLogEntries = 0;
424 | }
425 | }
426 | else
427 | {
428 | // write to file directly
429 | std::fprintf(Log, "%s", entry);
430 | }
431 |
432 | }
433 |
434 |
435 |
436 | /* ===================================================================== */
437 | // Analysis routines (runtime)
438 | /* ===================================================================== */
439 |
440 | VOID CaptureRtlAllocateHeapBefore(THREADID tid, UINT32 flags, int size)
441 | {
442 | // At start of function, simply remember the requested size in TLS
443 | PIN_SetThreadData(alloc_key, (void *) size, tid);
444 | }
445 |
446 |
447 | VOID CaptureRtlAllocateHeapAfter(THREADID tid, ADDRINT addr, ADDRINT caller)
448 | {
449 | // At end of function restore requested size and save data
450 | // avoid noise
451 | if (addr > 0x1000 && addr < 0x7fffffff)
452 | {
453 | //restore size (dwBytes) argument that was stored at start of function
454 | int size = (int) PIN_GetThreadData(alloc_key, tid);
455 |
456 | // create new object
457 | CHeapOperation ho_alloc(true);
458 | ho_alloc.operation_type = "rtlallocateheap";
459 | ho_alloc.chunk_start = addr;
460 | ho_alloc.chunk_size = size;
461 | ho_alloc.chunk_end = addr + size;
462 | ho_alloc.saved_return_pointer = caller;
463 | ho_alloc.operation_timestamp = time(0);
464 | string imagename = getModuleImageNameByAddress(caller);
465 | ho_alloc.srp_imagename = imagename;
466 |
467 | ho_alloc.save_to_log();
468 | ho_alloc.check_addy();
469 |
470 | arrAllOperations.push_back(ho_alloc);
471 | // add to map chunksizes (or update existing entry)
472 | chunksizes[addr] = size;
473 |
474 | }
475 | }
476 |
477 |
478 | VOID CaptureRtlReAllocateHeapBefore(THREADID tid, UINT32 flags, int size)
479 | {
480 | // At start of function, simply remember the requested size in TLS
481 | PIN_SetThreadData(alloc_key, (void *) size, tid);
482 | }
483 |
484 |
485 | VOID CaptureRtlReAllocateHeapAfter(THREADID tid, ADDRINT addr, ADDRINT caller)
486 | {
487 | // At end of function restore requested size and save data
488 | // avoid noise
489 | if (addr > 0x1000 && addr < 0x7fffffff)
490 | {
491 | //restore size argument that was stored at start of function
492 | int size = (int) PIN_GetThreadData(alloc_key, tid);
493 |
494 | // create new object
495 | CHeapOperation ho_alloc(true);
496 | ho_alloc.operation_type = "rtlreallocateheap";
497 | ho_alloc.chunk_start = addr;
498 | ho_alloc.chunk_size = size;
499 | ho_alloc.chunk_end = addr + size;
500 | ho_alloc.saved_return_pointer = caller;
501 | ho_alloc.operation_timestamp = time(0);
502 | string imagename = getModuleImageNameByAddress(caller);
503 | ho_alloc.srp_imagename = imagename;
504 |
505 | ho_alloc.save_to_log();
506 | ho_alloc.check_addy();
507 |
508 | arrAllOperations.push_back(ho_alloc);
509 | // add to map chunksizes
510 | chunksizes[addr] = size;
511 |
512 | }
513 | }
514 |
515 |
516 | VOID CaptureVirtualAllocBefore(THREADID tid, int size, int flProtect)
517 | {
518 | // At start of function, simply remember the requested size in TLS
519 | PIN_SetThreadData(alloc_key, (void *) size, tid);
520 | }
521 |
522 |
523 | VOID CaptureVirtualAllocAfter(THREADID tid, ADDRINT addr, ADDRINT caller)
524 | {
525 | // At end of function restore requested size and save data
526 | // avoid noise
527 |
528 | //restore size argument that was stored at start of function
529 | int size = (int) PIN_GetThreadData(alloc_key, tid);
530 |
531 | // create new object
532 | CHeapOperation ho_alloc(true);
533 | ho_alloc.operation_type = "virtualalloc";
534 | ho_alloc.chunk_start = addr;
535 | ho_alloc.chunk_size = size;
536 | ho_alloc.chunk_end = addr + size;
537 | ho_alloc.saved_return_pointer = caller;
538 | ho_alloc.operation_timestamp = time(0);
539 | string imagename = getModuleImageNameByAddress(caller);
540 | ho_alloc.srp_imagename = imagename;
541 |
542 | ho_alloc.save_to_log();
543 | ho_alloc.check_addy();
544 |
545 | arrAllOperations.push_back(ho_alloc);
546 | // add to map chunksizes
547 | chunksizes[addr] = size;
548 | }
549 |
550 |
551 | VOID CaptureRtlFreeHeapBefore(ADDRINT addr, ADDRINT caller)
552 | {
553 |
554 | // avoid noise
555 | if (addr > 0x1000 && addr < 0x7fffffff)
556 | {
557 | // create new object
558 | CHeapOperation ho_free(false);
559 | ho_free.operation_type = "rtlfreeheap";
560 | ho_free.chunk_start = addr;
561 | ho_free.saved_return_pointer = caller;
562 | ho_free.operation_timestamp = time(0);
563 |
564 | string imagename = getModuleImageNameByAddress(caller);
565 |
566 |
567 | // see if we can get size from previous allocation
568 | WINDOWS::DWORD size = findSize(addr);
569 | ho_free.chunk_size = size;
570 | ho_free.chunk_end = ho_free.chunk_start + size;
571 | ho_free.srp_imagename = imagename;
572 |
573 | ho_free.save_to_log();
574 | ho_free.check_addy();
575 |
576 | arrAllOperations.push_back(ho_free);
577 |
578 | // remove from chunksizes, because no longer relevant
579 | chunksizes.erase(addr);
580 |
581 | }
582 | }
583 |
584 |
585 |
586 |
587 | /* ===================================================================== */
588 | // Instrumentation callbacks (instrumentation time)
589 | /* ===================================================================== */
590 |
591 | VOID AddInstrumentation(IMG img, VOID *v)
592 | {
593 | // this instrumentation routine gets executed when an image is loaded
594 |
595 | // first, add image information to global array
596 | ADDRINT BaseAddy = IMG_LowAddress(img);
597 | CModuleImage thisimage(img);
598 | saveModToArray(thisimage);
599 | thisimage.save_to_log();
600 |
601 | // next, walk through the symbols in the symbol table to see if it contains the Heap related functions that we want to monitor
602 | //
603 | for (SYM sym = IMG_RegsymHead(img); SYM_Valid(sym); sym = SYM_Next(sym))
604 | {
605 | string undFuncName = PIN_UndecorateSymbolName(SYM_Name(sym), UNDECORATION_NAME_ONLY);
606 |
607 | // Find the RtlAllocateHeap() function.
608 | if (undFuncName == "RtlAllocateHeap" && LogAlloc)
609 | {
610 | RTN allocRtn = LEVEL_PINCLIENT::RTN_FindByAddress(IMG_LowAddress(img) + SYM_Value(sym));
611 |
612 | if (LEVEL_PINCLIENT::RTN_Valid(allocRtn))
613 | {
614 | // Instrument to capture allocation address and original function arguments
615 | // at end of the RtlAllocateHeap function
616 |
617 | LEVEL_PINCLIENT::RTN_Open(allocRtn);
618 |
619 | saveToLog(LogFile,"Adding instrumentation for RtlAllocateHeap (0x%p) %s \n", (BaseAddy + SYM_Value(sym)), IMG_Name(img));
620 |
621 | LEVEL_PINCLIENT::RTN_InsertCall(allocRtn, IPOINT_BEFORE, (AFUNPTR) &CaptureRtlAllocateHeapBefore,
622 | IARG_THREAD_ID, IARG_FUNCARG_ENTRYPOINT_VALUE, 1,
623 | IARG_FUNCARG_ENTRYPOINT_VALUE, 2, IARG_END);
624 |
625 | // return value is the address that has been allocated
626 | LEVEL_PINCLIENT::RTN_InsertCall(allocRtn, IPOINT_AFTER, (AFUNPTR) &CaptureRtlAllocateHeapAfter,
627 | IARG_THREAD_ID, IARG_FUNCRET_EXITPOINT_VALUE, IARG_G_ARG0_CALLER, IARG_END);
628 |
629 | LEVEL_PINCLIENT::RTN_Close(allocRtn);
630 | }
631 | }
632 |
633 | // Find the RtlReAllocateHeap() function.
634 | else if (undFuncName == "RtlReAllocateHeap" && LogAlloc)
635 | {
636 | RTN reallocRtn = LEVEL_PINCLIENT::RTN_FindByAddress(IMG_LowAddress(img) + SYM_Value(sym));
637 |
638 | if (LEVEL_PINCLIENT::RTN_Valid(reallocRtn))
639 | {
640 | // Instrument to capture allocation address and original function arguments
641 | // at end of the RtlAllocateHeap function
642 |
643 | LEVEL_PINCLIENT::RTN_Open(reallocRtn);
644 |
645 | saveToLog(LogFile,"Adding instrumentation for RtlReAllocateHeap (0x%p) %s \n", (BaseAddy + SYM_Value(sym)), IMG_Name(img));
646 | // HeapHandle
647 | // Flags
648 | // MemoryPointer
649 | // Size
650 | LEVEL_PINCLIENT::RTN_InsertCall(reallocRtn, IPOINT_BEFORE, (AFUNPTR) &CaptureRtlReAllocateHeapBefore,
651 | IARG_THREAD_ID, IARG_FUNCARG_ENTRYPOINT_VALUE, 2,
652 | IARG_FUNCARG_ENTRYPOINT_VALUE, 3, IARG_END);
653 |
654 | // return value is the address that has been allocated
655 | LEVEL_PINCLIENT::RTN_InsertCall(reallocRtn, IPOINT_AFTER, (AFUNPTR) &CaptureRtlReAllocateHeapAfter,
656 | IARG_THREAD_ID, IARG_FUNCRET_EXITPOINT_VALUE, IARG_G_ARG0_CALLER, IARG_END);
657 |
658 | LEVEL_PINCLIENT::RTN_Close(reallocRtn);
659 | }
660 | }
661 |
662 | // Find the VirtualAlloc() function.
663 | else if (undFuncName == "VirtualAlloc" && LogAlloc)
664 | {
665 | RTN vaallocRtn = LEVEL_PINCLIENT::RTN_FindByAddress(IMG_LowAddress(img) + SYM_Value(sym));
666 |
667 | if (LEVEL_PINCLIENT::RTN_Valid(vaallocRtn))
668 | {
669 | // Instrument to capture allocation address and original function arguments
670 | // at end of the VirtualAlloc function
671 |
672 | LEVEL_PINCLIENT::RTN_Open(vaallocRtn);
673 |
674 | saveToLog(LogFile,"Adding instrumentation for VirtualAlloc (0x%p) %s\n", (BaseAddy + SYM_Value(sym)), IMG_Name(img));
675 | // lpAddress
676 | // dwSize
677 | // flAllocationType
678 | // flProtect
679 | LEVEL_PINCLIENT::RTN_InsertCall(vaallocRtn, IPOINT_BEFORE, (AFUNPTR) &CaptureVirtualAllocBefore,
680 | IARG_THREAD_ID, IARG_FUNCARG_ENTRYPOINT_VALUE, 1,
681 | IARG_FUNCARG_ENTRYPOINT_VALUE, 3, IARG_END);
682 |
683 | // return value is the address that has been allocated
684 | LEVEL_PINCLIENT::RTN_InsertCall(vaallocRtn, IPOINT_AFTER, (AFUNPTR) &CaptureVirtualAllocAfter,
685 | IARG_THREAD_ID, IARG_FUNCRET_EXITPOINT_VALUE, IARG_G_ARG0_CALLER, IARG_END);
686 |
687 | LEVEL_PINCLIENT::RTN_Close(vaallocRtn);
688 | }
689 | }
690 |
691 |
692 | // Find the RtlFreeHeap() function.
693 | else if (undFuncName == "RtlFreeHeap" && LogFree)
694 | {
695 | RTN freeRtn = RTN_FindByAddress(IMG_LowAddress(img) + SYM_Value(sym));
696 |
697 | if (RTN_Valid(freeRtn))
698 | {
699 | LEVEL_PINCLIENT::RTN_Open(freeRtn);
700 |
701 | saveToLog(LogFile,"Adding instrumentation for RtlFreeHeap (0x%p) %s\n", (BaseAddy + SYM_Value(sym)), IMG_Name(img));
702 |
703 | LEVEL_PINCLIENT::RTN_InsertCall(freeRtn, IPOINT_BEFORE, (AFUNPTR) &CaptureRtlFreeHeapBefore,
704 | IARG_FUNCARG_ENTRYPOINT_VALUE, 2, // address
705 | IARG_G_ARG0_CALLER, // saved return pointer
706 | IARG_END);
707 |
708 | LEVEL_PINCLIENT::RTN_Close(freeRtn);
709 | }
710 | }
711 |
712 | }
713 | }
714 |
715 |
716 | VOID LogContext(const CONTEXT *ctxt)
717 | {
718 | string exceptiontimestamp = getCurrentDateTimeStr();
719 | std::fprintf(ExceptionLogFile, "Exception timestamp: %s\n", exceptiontimestamp);
720 | std::fprintf(ExceptionLogFile, "PID %u | Exception context:\n", PIN_GetPid());
721 | ADDRINT EIP = PIN_GetContextReg( ctxt, REG_INST_PTR );
722 | ADDRINT EAX = PIN_GetContextReg( ctxt, REG_EAX );
723 | ADDRINT EBX = PIN_GetContextReg( ctxt, REG_EBX );
724 | ADDRINT ECX = PIN_GetContextReg( ctxt, REG_ECX );
725 | ADDRINT EDX = PIN_GetContextReg( ctxt, REG_EDX );
726 | ADDRINT ESP = PIN_GetContextReg( ctxt, REG_ESP );
727 | ADDRINT EBP = PIN_GetContextReg( ctxt, REG_EBP );
728 | ADDRINT ESI = PIN_GetContextReg( ctxt, REG_ESI );
729 | ADDRINT EDI = PIN_GetContextReg( ctxt, REG_EDI );
730 |
731 | string EIPinfo = getAddressInfo(EIP);
732 | string EAXinfo = getAddressInfo(EAX);
733 | string EBXinfo = getAddressInfo(EBX);
734 | string ECXinfo = getAddressInfo(ECX);
735 | string EDXinfo = getAddressInfo(EDX);
736 | string EBPinfo = getAddressInfo(EBP);
737 | string ESPinfo = getAddressInfo(ESP);
738 | string ESIinfo = getAddressInfo(ESI);
739 | string EDIinfo = getAddressInfo(EDI);
740 |
741 | std::fprintf(ExceptionLogFile, "EIP: 0x%p %s\n", EIP, EIPinfo);
742 | std::fprintf(ExceptionLogFile, "EAX: 0x%p %s\n", EAX, EAXinfo);
743 | std::fprintf(ExceptionLogFile, "EBX: 0x%p %s\n", EBX, EBXinfo);
744 | std::fprintf(ExceptionLogFile, "ECX: 0x%p %s\n", ECX, ECXinfo);
745 | std::fprintf(ExceptionLogFile, "EDX: 0x%p %s\n", EDX, EDXinfo);
746 | std::fprintf(ExceptionLogFile, "EBP: 0x%p %s\n", EBP, EBPinfo);
747 | std::fprintf(ExceptionLogFile, "ESP: 0x%p %s\n", ESP, ESPinfo);
748 | std::fprintf(ExceptionLogFile, "ESI: 0x%p %s\n", ESI, ESIinfo);
749 | std::fprintf(ExceptionLogFile, "EDI: 0x%p %s\n", EDI, EDIinfo);
750 | std::fprintf(ExceptionLogFile, "\n");
751 | }
752 |
753 |
754 |
755 | VOID OnException(THREADID threadIndex, CONTEXT_CHANGE_REASON reason, const CONTEXT *ctxtFrom, CONTEXT *ctxtTo, INT32 info, VOID *v)
756 | {
757 | if (reason != CONTEXT_CHANGE_REASON_EXCEPTION)
758 | return;
759 |
760 | UINT32 exceptionCode = info;
761 | ADDRINT address = PIN_GetContextReg(ctxtFrom, REG_INST_PTR);
762 | saveToLog(LogFile, "\n\n*** Exception at 0x%p, code 0x%x ***\n", address, exceptionCode);
763 | if ((exceptionCode >= 0xc0000000) && (exceptionCode <= 0xcfffffff))
764 | {
765 | saveToLog(LogFile, "%s\n", "For more info about this exception, see exception log file ***");
766 | LogContext(ctxtFrom);
767 | CloseExceptionLogFile();
768 | CloseLogFile();
769 | PIN_ExitProcess(-1);
770 | }
771 | }
772 |
773 |
774 | BOOL FollowChild(CHILD_PROCESS childProcess, VOID * userData)
775 | {
776 | saveToLog(LogFile, "\n*******************************\nCreating child process from parent PID %u\n*******************************\n\n", PIN_GetPid());
777 | return true;
778 | }
779 |
780 |
781 |
782 | VOID Fini(INT32 code, VOID *v)
783 | {
784 | saveToLog(LogFile,"\n\nNumber of heap operations logged: %d\n",arrAllOperations.size());
785 | CloseLogFile();
786 | }
787 |
788 |
789 | VOID ThreadStart(THREADID threadid, CONTEXT *ctxt, INT32 flags, VOID *v)
790 | {
791 | PIN_GetLock(&lock, threadid+1);
792 | saveToLog(LogFile, "PID: %u | New thread id %d\n",PIN_GetPid(),threadid);
793 | PIN_ReleaseLock(&lock);
794 | }
795 |
796 | VOID ThreadStop(THREADID threadid, const CONTEXT *ctxt, INT32 code, VOID *v)
797 | {
798 | PIN_GetLock(&lock, threadid+1);
799 | saveToLog(LogFile, "PID: %u | Closed thread id %d\n",PIN_GetPid(),threadid);
800 | PIN_ReleaseLock(&lock);
801 | }
802 |
803 | /*!
804 | */
805 | int main(int argc, char *argv[])
806 | {
807 | // init PIN Lock
808 | PIN_InitLock(&lock);
809 |
810 | // Initialize PIN library.
811 | PIN_Init(argc,argv);
812 |
813 | // convert command line options into Global options
814 | LogAlloc = KnobLogAlloc.Value();
815 | LogFree = KnobLogFree.Value();
816 | ShowTimeStamp = KnobShowTimeStamp.Value();
817 | SplitFiles = KnobSplitFiles.Value();
818 | StaySilent = KnobStaySilent.Value();
819 | BufferOutput = KnobBufferOutput.Value();
820 |
821 | // define logfile name and behaviour
822 | int currentpid = PIN_GetPid();
823 | stringstream ss;
824 | ss << "corelan_heaplog_";
825 | ss << currentpid;
826 | ss << ".log";
827 | string fileName = ss.str();
828 | char * openMode = "w+";
829 |
830 | if (!SplitFiles)
831 | {
832 | fileName = "corelan_heaplog.log";
833 | openMode = "a+";
834 | }
835 |
836 | LogFile = fopen(fileName.c_str(),openMode);
837 | ExceptionLogFile = fopen("corelan_heaplog_exception.log","a+");
838 |
839 | saveToLog(LogFile, "Instrumentation started\n");
840 |
841 | // load symbols.
842 | PIN_InitSymbols();
843 |
844 |
845 | // we will need a way to pass data around, so we'll store stuff in TLS
846 | alloc_key = PIN_CreateThreadDataKey(0);
847 |
848 | std::string ascii_time;
849 | ascii_time = getCurrentDateTimeStr();
850 |
851 | saveToLog(LogFile, "==========================================\n");
852 | saveToLog(LogFile, "Date & time: %s\n", ascii_time);
853 | saveToLog(LogFile,"Adding output for PID %u into this file\n", currentpid);
854 |
855 |
856 | if (LogAlloc) saveToLog(LogFile, "Logging heap alloc: YES\n"); else saveToLog(LogFile, "Logging heap alloc: NO\n");
857 | if (LogFree) saveToLog(LogFile, "Logging heap free: YES\n"); else saveToLog(LogFile, "Logging heap free: NO\n");
858 | if (BufferOutput) saveToLog(LogFile, "Buffering output: YES\n"); else saveToLog(LogFile, "Buffering output: NO\n");
859 |
860 | // notify when following child process
861 | PIN_AddFollowChildProcessFunction(FollowChild, 0);
862 |
863 | // notify when new thread is created or closed
864 |
865 | PIN_AddThreadStartFunction(ThreadStart, 0);
866 | PIN_AddThreadFiniFunction(ThreadStop, 0);
867 |
868 | // only add instrumentation if we have to :)
869 |
870 | if (LogAlloc || LogFree)
871 | {
872 | // Register function to be called to instrument traces
873 | IMG_AddInstrumentFunction(AddInstrumentation, 0);
874 |
875 | // Register function to be called when the application exits
876 | PIN_AddFiniFunction(Fini, 0);
877 | }
878 |
879 | //Handle exceptions
880 | PIN_AddContextChangeFunction(OnException, 0);
881 |
882 | saveToLog(LogFile, "==========================================\n\n");
883 |
884 | // Start the program, never returns
885 | PIN_StartProgram();
886 |
887 | return 0;
888 | }
889 |
--------------------------------------------------------------------------------
/win32/Corelan_HeapLog/Corelan_HeapLog.opensdf:
--------------------------------------------------------------------------------
1 | c o r e l a n C O R E L A N - W I N 7 - 2
--------------------------------------------------------------------------------
/win32/Corelan_HeapLog/Corelan_HeapLog.sdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/corelan/pin/908e6f82461c17d19048986d672ebe8ab80a33a8/win32/Corelan_HeapLog/Corelan_HeapLog.sdf
--------------------------------------------------------------------------------
/win32/Corelan_HeapLog/Corelan_HeapLog.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Express 2012 for Windows Desktop
4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Corelan_HeapLog", "Corelan_HeapLog.vcxproj", "{639EF517-FCFC-408E-9500-71F0DC0458DB}"
5 | EndProject
6 | Global
7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
8 | Debug|Win32 = Debug|Win32
9 | Debug|x64 = Debug|x64
10 | Release|Win32 = Release|Win32
11 | Release|x64 = Release|x64
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {639EF517-FCFC-408E-9500-71F0DC0458DB}.Debug|Win32.ActiveCfg = Debug|Win32
15 | {639EF517-FCFC-408E-9500-71F0DC0458DB}.Debug|Win32.Build.0 = Debug|Win32
16 | {639EF517-FCFC-408E-9500-71F0DC0458DB}.Debug|x64.ActiveCfg = Debug|x64
17 | {639EF517-FCFC-408E-9500-71F0DC0458DB}.Debug|x64.Build.0 = Debug|x64
18 | {639EF517-FCFC-408E-9500-71F0DC0458DB}.Release|Win32.ActiveCfg = Release|Win32
19 | {639EF517-FCFC-408E-9500-71F0DC0458DB}.Release|Win32.Build.0 = Release|Win32
20 | {639EF517-FCFC-408E-9500-71F0DC0458DB}.Release|x64.ActiveCfg = Release|x64
21 | {639EF517-FCFC-408E-9500-71F0DC0458DB}.Release|x64.Build.0 = Release|x64
22 | EndGlobalSection
23 | GlobalSection(SolutionProperties) = preSolution
24 | HideSolutionNode = FALSE
25 | EndGlobalSection
26 | EndGlobal
27 |
--------------------------------------------------------------------------------
/win32/Corelan_HeapLog/Corelan_HeapLog.v11.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/corelan/pin/908e6f82461c17d19048986d672ebe8ab80a33a8/win32/Corelan_HeapLog/Corelan_HeapLog.v11.suo
--------------------------------------------------------------------------------
/win32/Corelan_HeapLog/Corelan_HeapLog.vcxproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | Win32
7 |
8 |
9 | Debug
10 | x64
11 |
12 |
13 | Release
14 | Win32
15 |
16 |
17 | Release
18 | x64
19 |
20 |
21 |
22 | {639EF517-FCFC-408E-9500-71F0DC0458DB}
23 | Corelan_HeapLog
24 | Win32Proj
25 |
26 |
27 |
28 | DynamicLibrary
29 | MultiByte
30 | true
31 | v110
32 |
33 |
34 | DynamicLibrary
35 | MultiByte
36 | v110
37 |
38 |
39 | DynamicLibrary
40 | MultiByte
41 | true
42 | v110
43 |
44 |
45 | DynamicLibrary
46 | MultiByte
47 | v110
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 | <_ProjectFileVersion>10.0.40219.1
67 | $(ProjectDir)$(Configuration)\
68 | $(Configuration)\
69 | false
70 | false
71 | $(ProjectDir)$(Platform)\$(Configuration)\
72 | $(Platform)\$(Configuration)\
73 | false
74 | false
75 | $(ProjectDir)$(Configuration)\
76 | $(Configuration)\
77 | false
78 | false
79 | $(ProjectDir)$(Platform)\$(Configuration)\
80 | $(Platform)\$(Configuration)\
81 | false
82 | false
83 | AllRules.ruleset
84 |
85 |
86 | AllRules.ruleset
87 |
88 |
89 | AllRules.ruleset
90 |
91 |
92 | AllRules.ruleset
93 |
94 |
95 |
96 |
97 |
98 | /EHs- /EHa- %(AdditionalOptions)
99 | Disabled
100 | ..\..\include\pin;..\..\include\pin\gen;..\InstLib;..\..\..\extras\xed-ia32\include;..\..\..\extras\components\include;%(AdditionalIncludeDirectories)
101 | TARGET_IA32;HOST_IA32;TARGET_WINDOWS;BIGARRAY_MULTIPLIER=1;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;WIN32
102 | false
103 |
104 |
105 | Default
106 | MultiThreaded
107 | false
108 | true
109 | NotSet
110 | false
111 |
112 |
113 | Level3
114 | ProgramDatabase
115 | 4530;%(DisableSpecificWarnings)
116 |
117 |
118 | /export:main %(AdditionalOptions)
119 | pin.lib;libxed.lib;libcpmt.lib;libcmt.lib;pinvm.lib;kernel32.lib;ntdll-32.lib
120 | ..\..\..\ia32\lib;..\..\..\ia32\lib-ext;..\..\..\extras\xed-ia32\lib;%(AdditionalLibraryDirectories)
121 | true
122 | %(IgnoreSpecificDefaultLibraries)
123 | true
124 | NotSet
125 | false
126 | Ptrace_DllMainCRTStartup%4012
127 | 0x55000000
128 | MachineX86
129 | true
130 | false
131 |
132 |
133 |
134 |
135 | X64
136 |
137 |
138 | /EHs- /EHa- %(AdditionalOptions)
139 | Disabled
140 | ..\..\include\pin;..\..\include\pin\gen;..\InstLib;..\..\..\extras\xed-intel64\include;..\..\..\extras\components\include;%(AdditionalIncludeDirectories)
141 | TARGET_IA32E;HOST_IA32E;TARGET_WINDOWS;BIGARRAY_MULTIPLIER=1;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;WIN32
142 | false
143 |
144 |
145 | Default
146 | MultiThreaded
147 | false
148 | true
149 | false
150 |
151 |
152 | Level3
153 | ProgramDatabase
154 | 4530;%(DisableSpecificWarnings)
155 |
156 |
157 | /export:main %(AdditionalOptions)
158 | pin.lib;libxed.lib;libcpmt.lib;libcmt.lib;pinvm.lib;kernel32.lib;ntdll-64.lib
159 | ..\..\..\intel64\lib;..\..\..\intel64\lib-ext;..\..\..\extras\xed-intel64\lib;%(AdditionalLibraryDirectories)
160 | true
161 | %(IgnoreSpecificDefaultLibraries)
162 | true
163 | NotSet
164 | false
165 | Ptrace_DllMainCRTStartup
166 | 0xC5000000
167 | MachineX64
168 | true
169 |
170 |
171 |
172 |
173 | /EHs- /EHa- %(AdditionalOptions)
174 | true
175 | false
176 | ..\..\include;..\..\include\gen;..\InstLib;..\..\..\extras\xed-ia32\include;..\..\..\extras\components\include;%(AdditionalIncludeDirectories)
177 | TARGET_IA32;HOST_IA32;TARGET_WINDOWS;BIGARRAY_MULTIPLIER=1;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;WIN32
178 | false
179 |
180 |
181 | Default
182 | MultiThreaded
183 | false
184 | true
185 | NotSet
186 | false
187 |
188 |
189 | Level3
190 |
191 |
192 | 4530;%(DisableSpecificWarnings)
193 |
194 |
195 | /export:main %(AdditionalOptions)
196 | pin.lib;libxed.lib;libcpmt.lib;libcmt.lib;pinvm.lib;kernel32.lib;ntdll-32.lib
197 | ..\..\..\ia32\lib;..\..\..\ia32\lib-ext;..\..\..\extras\xed-ia32\lib;%(AdditionalLibraryDirectories)
198 | true
199 | %(IgnoreSpecificDefaultLibraries)
200 | true
201 | NotSet
202 | true
203 |
204 |
205 |
206 |
207 | Ptrace_DllMainCRTStartup%4012
208 | 0x55000000
209 | MachineX86
210 |
211 |
212 |
213 |
214 | X64
215 |
216 |
217 | /EHs- /EHa- %(AdditionalOptions)
218 | true
219 | false
220 | ..\..\include;..\..\include\gen;..\InstLib;..\..\..\extras\xed-intel64\include;..\..\..\extras\components\include;%(AdditionalIncludeDirectories)
221 | TARGET_IA32E;HOST_IA32E;TARGET_WINDOWS;BIGARRAY_MULTIPLIER=1;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;WIN32
222 | false
223 |
224 |
225 | Default
226 | MultiThreaded
227 | false
228 | true
229 | false
230 |
231 |
232 | Level3
233 |
234 |
235 | 4530;%(DisableSpecificWarnings)
236 |
237 |
238 | /export:main %(AdditionalOptions)
239 | pin.lib;libxed.lib;libcpmt.lib;libcmt.lib;pinvm.lib;kernel32.lib;ntdll-64.lib
240 | ..\..\..\intel64\lib;..\..\..\intel64\lib-ext;..\..\..\extras\xed-intel64\lib;%(AdditionalLibraryDirectories)
241 | true
242 | %(IgnoreSpecificDefaultLibraries)
243 | true
244 | NotSet
245 | true
246 |
247 |
248 |
249 |
250 | Ptrace_DllMainCRTStartup
251 | 0xC5000000
252 | MachineX64
253 |
254 |
255 |
256 |
257 |
258 |
259 |
260 |
261 |
262 |
263 |
264 |
--------------------------------------------------------------------------------
/win32/Corelan_HeapLog/Corelan_HeapLog.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {93995380-89BD-4b04-88EB-625FBE52EBFB}
10 | h;hpp;hxx;hm;inl;inc;xsd
11 |
12 |
13 | {b8dd2600-7302-4aa7-a99d-1607cd3cd4fb}
14 | txt;doc;html
15 |
16 |
17 |
18 |
19 | Source Files
20 |
21 |
22 |
23 |
24 | Documents
25 |
26 |
27 |
--------------------------------------------------------------------------------
/win32/Corelan_HeapLog/Debug/CL.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/corelan/pin/908e6f82461c17d19048986d672ebe8ab80a33a8/win32/Corelan_HeapLog/Debug/CL.read.1.tlog
--------------------------------------------------------------------------------
/win32/Corelan_HeapLog/Debug/CL.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/corelan/pin/908e6f82461c17d19048986d672ebe8ab80a33a8/win32/Corelan_HeapLog/Debug/CL.write.1.tlog
--------------------------------------------------------------------------------
/win32/Corelan_HeapLog/Debug/Corelan_HeapLog.Build.CppClean.log:
--------------------------------------------------------------------------------
1 | C:\PIN\VC11\SOURCE\TOOLS\CORELAN_HEAPLOG\DEBUG\CORELAN_HEAPLOG.OBJ
2 | C:\PIN\VC11\SOURCE\TOOLS\CORELAN_HEAPLOG\DEBUG\VC110.PDB
3 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
4 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
5 | C:\PIN\VC11\SOURCE\TOOLS\CORELAN_HEAPLOG\DEBUG\CORELAN_HEAPLOG.DLL
6 | C:\PIN\VC11\SOURCE\TOOLS\CORELAN_HEAPLOG\DEBUG\CORELAN_HEAPLOG.PDB
7 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.obj
8 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\cl.command.1.tlog
9 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\CL.read.1.tlog
10 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\CL.write.1.tlog
11 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.write.1.tlog
12 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\link.command.1.tlog
13 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\link.read.1.tlog
14 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\link.write.1.tlog
15 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.pdb
16 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\vc110.pdb
17 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.dll
18 |
--------------------------------------------------------------------------------
/win32/Corelan_HeapLog/Debug/Corelan_HeapLog.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/corelan/pin/908e6f82461c17d19048986d672ebe8ab80a33a8/win32/Corelan_HeapLog/Debug/Corelan_HeapLog.dll
--------------------------------------------------------------------------------
/win32/Corelan_HeapLog/Debug/Corelan_HeapLog.exp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/corelan/pin/908e6f82461c17d19048986d672ebe8ab80a33a8/win32/Corelan_HeapLog/Debug/Corelan_HeapLog.exp
--------------------------------------------------------------------------------
/win32/Corelan_HeapLog/Debug/Corelan_HeapLog.lastbuildstate:
--------------------------------------------------------------------------------
1 | #v4.0:v110:false
2 | Debug|Win32|C:\pin\vc11\source\tools\Corelan_HeapLog\|
3 |
--------------------------------------------------------------------------------
/win32/Corelan_HeapLog/Debug/Corelan_HeapLog.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/corelan/pin/908e6f82461c17d19048986d672ebe8ab80a33a8/win32/Corelan_HeapLog/Debug/Corelan_HeapLog.lib
--------------------------------------------------------------------------------
/win32/Corelan_HeapLog/Debug/Corelan_HeapLog.log:
--------------------------------------------------------------------------------
1 | Build started 29/12/2015 4:08:39.
2 | 1>Project "C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj" on node 2 (Build target(s)).
3 | 1>ClCompile:
4 | C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\CL.exe /c /I..\..\include\pin /I..\..\include\pin\gen /I..\InstLib /I"..\..\..\extras\xed-ia32\include" /I..\..\..\extras\components\include /Zi /nologo /W3 /WX- /Od /Oy- /D TARGET_IA32 /D HOST_IA32 /D TARGET_WINDOWS /D BIGARRAY_MULTIPLIER=1 /D _CRT_SECURE_NO_DEPRECATE /D _SECURE_SCL=0 /D WIN32 /Gm- /MT /GS- /Gy /fp:precise /Zc:wchar_t /Zc:forScope /GR- /Fo"Debug\\" /Fd"Debug\vc110.pdb" /Gd /TP /wd4530 /analyze- /errorReport:prompt /EHs- /EHa- Corelan_HeapLog.cpp
5 | Corelan_HeapLog.cpp
6 | Link:
7 | C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.dll" /INCREMENTAL:NO /NOLOGO /LIBPATH:..\..\..\ia32\lib /LIBPATH:"..\..\..\ia32\lib-ext" /LIBPATH:"..\..\..\extras\xed-ia32\lib" pin.lib libxed.lib libcpmt.lib libcmt.lib pinvm.lib kernel32.lib "ntdll-32.lib" /NODEFAULTLIB /MANIFEST:NO /DEBUG /PDB:"C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.pdb" /OPT:NOREF /TLBID:1 /ENTRY:"Ptrace_DllMainCRTStartup@12" /BASE:"0x55000000" /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib" /MACHINE:X86 /SAFESEH:NO /export:main /DLL Debug\Corelan_HeapLog.obj
8 | Creating library C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib and object C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
9 | Corelan_HeapLog.vcxproj -> C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.dll
10 | 1>Done Building Project "C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj" (Build target(s)).
11 |
12 | Build succeeded.
13 |
14 | Time Elapsed 00:00:03.46
15 |
--------------------------------------------------------------------------------
/win32/Corelan_HeapLog/Debug/Corelan_HeapLog.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/corelan/pin/908e6f82461c17d19048986d672ebe8ab80a33a8/win32/Corelan_HeapLog/Debug/Corelan_HeapLog.obj
--------------------------------------------------------------------------------
/win32/Corelan_HeapLog/Debug/Corelan_HeapLog.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/corelan/pin/908e6f82461c17d19048986d672ebe8ab80a33a8/win32/Corelan_HeapLog/Debug/Corelan_HeapLog.pdb
--------------------------------------------------------------------------------
/win32/Corelan_HeapLog/Debug/Corelan_HeapLog.write.1.tlog:
--------------------------------------------------------------------------------
1 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
2 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
3 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
4 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
5 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
6 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
7 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
8 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
9 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
10 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
11 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
12 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
13 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
14 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
15 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
16 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
17 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
18 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
19 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
20 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
21 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
22 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
23 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
24 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
25 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
26 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
27 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
28 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
29 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
30 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
31 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
32 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
33 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
34 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
35 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
36 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
37 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
38 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
39 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
40 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
41 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
42 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
43 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
44 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
45 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
46 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
47 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
48 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
49 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
50 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
51 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
52 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
53 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
54 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
55 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
56 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
57 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
58 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
59 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
60 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
61 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
62 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
63 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
64 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
65 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
66 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
67 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
68 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
69 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
70 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
71 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
72 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
73 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
74 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
75 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
76 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
77 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
78 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
79 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
80 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
81 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
82 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
83 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
84 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
85 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
86 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
87 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
88 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
89 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
90 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
91 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
92 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
93 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
94 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
95 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
96 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
97 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
98 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
99 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
100 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
101 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
102 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
103 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
104 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
105 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
106 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
107 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
108 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
109 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
110 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
111 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
112 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
113 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
114 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
115 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
116 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
117 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
118 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
119 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
120 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
121 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
122 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
123 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
124 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
125 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
126 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
127 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
128 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
129 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
130 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
131 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
132 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
133 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
134 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
135 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
136 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
137 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
138 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
139 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
140 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
141 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
142 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
143 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
144 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
145 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
146 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
147 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
148 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
149 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
150 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
151 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
152 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
153 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
154 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
155 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
156 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
157 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
158 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
159 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
160 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
161 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
162 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
163 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
164 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
165 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
166 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
167 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
168 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
169 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
170 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
171 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
172 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
173 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
174 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
175 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
176 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
177 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
178 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
179 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
180 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
181 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
182 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
183 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
184 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
185 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
186 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
187 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
188 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
189 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
190 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
191 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
192 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
193 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
194 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
195 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
196 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
197 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
198 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
199 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
200 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
201 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
202 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
203 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
204 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
205 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
206 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
207 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
208 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
209 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
210 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
211 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
212 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
213 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
214 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
215 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
216 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
217 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
218 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
219 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
220 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
221 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
222 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
223 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
224 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
225 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
226 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
227 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
228 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
229 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
230 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
231 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
232 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
233 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
234 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
235 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
236 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
237 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
238 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
239 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
240 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
241 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
242 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
243 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
244 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
245 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
246 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
247 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
248 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
249 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
250 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
251 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
252 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
253 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
254 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
255 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
256 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
257 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
258 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
259 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
260 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
261 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
262 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
263 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
264 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
265 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
266 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
267 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
268 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
269 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
270 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
271 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
272 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
273 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
274 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
275 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
276 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
277 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
278 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
279 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
280 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
281 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
282 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
283 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
284 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
285 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
286 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
287 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
288 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
289 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
290 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
291 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
292 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
293 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
294 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
295 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
296 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
297 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
298 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
299 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
300 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
301 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
302 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
303 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
304 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
305 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
306 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
307 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
308 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
309 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
310 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
311 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
312 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
313 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
314 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
315 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
316 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
317 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
318 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
319 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
320 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
321 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
322 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
323 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
324 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
325 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
326 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
327 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
328 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
329 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
330 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
331 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
332 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
333 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
334 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
335 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
336 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
337 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
338 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
339 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
340 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
341 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
342 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
343 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
344 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
345 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
346 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
347 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
348 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
349 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
350 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
351 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
352 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
353 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
354 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
355 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
356 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
357 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
358 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
359 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
360 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
361 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
362 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
363 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
364 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
365 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
366 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
367 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
368 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
369 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
370 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
371 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
372 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
373 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
374 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
375 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
376 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
377 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
378 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
379 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
380 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
381 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
382 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
383 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
384 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
385 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
386 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
387 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
388 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
389 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
390 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
391 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
392 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
393 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
394 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
395 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
396 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
397 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
398 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
399 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
400 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
401 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
402 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
403 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
404 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
405 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
406 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
407 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
408 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
409 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
410 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
411 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
412 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
413 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
414 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
415 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
416 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
417 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
418 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
419 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
420 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
421 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
422 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
423 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
424 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
425 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
426 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
427 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
428 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
429 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
430 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
431 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
432 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
433 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
434 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
435 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
436 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
437 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
438 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
439 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
440 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
441 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
442 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
443 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
444 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
445 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
446 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
447 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
448 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
449 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
450 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
451 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
452 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
453 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
454 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
455 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
456 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
457 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
458 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
459 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
460 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
461 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
462 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
463 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
464 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
465 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
466 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
467 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
468 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
469 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
470 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
471 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
472 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
473 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
474 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
475 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
476 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
477 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
478 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
479 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
480 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
481 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
482 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
483 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
484 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
485 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
486 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
487 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
488 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
489 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
490 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
491 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
492 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
493 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
494 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
495 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
496 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
497 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
498 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
499 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
500 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
501 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
502 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
503 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
504 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
505 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
506 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
507 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
508 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
509 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
510 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
511 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
512 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
513 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
514 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
515 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
516 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
517 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
518 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
519 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
520 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
521 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
522 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
523 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
524 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
525 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
526 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
527 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
528 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
529 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
530 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
531 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
532 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
533 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
534 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
535 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
536 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
537 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
538 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
539 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
540 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
541 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
542 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
543 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
544 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
545 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
546 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
547 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
548 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
549 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
550 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
551 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
552 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
553 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
554 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
555 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
556 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
557 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
558 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
559 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
560 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
561 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
562 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
563 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
564 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
565 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
566 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
567 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
568 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
569 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
570 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
571 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
572 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
573 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
574 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
575 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
576 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
577 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
578 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
579 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
580 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
581 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
582 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
583 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
584 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
585 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
586 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
587 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
588 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
589 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
590 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
591 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
592 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
593 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
594 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
595 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
596 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
597 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
598 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
599 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
600 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
601 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
602 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
603 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
604 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
605 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
606 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
607 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
608 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
609 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
610 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
611 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
612 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
613 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
614 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
615 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
616 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
617 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
618 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
619 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
620 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
621 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
622 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
623 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
624 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
625 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
626 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
627 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
628 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
629 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
630 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
631 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
632 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
633 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
634 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
635 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
636 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
637 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
638 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
639 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
640 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
641 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
642 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
643 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
644 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
645 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
646 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
647 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
648 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
649 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
650 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
651 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
652 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
653 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
654 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
655 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
656 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
657 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
658 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
659 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
660 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
661 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
662 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
663 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
664 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
665 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
666 | ^C:\pin\vc11\source\tools\Corelan_HeapLog\Corelan_HeapLog.vcxproj
667 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
668 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.lib
669 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
670 | C:\pin\vc11\source\tools\Corelan_HeapLog\Debug\Corelan_HeapLog.exp
671 |
--------------------------------------------------------------------------------
/win32/Corelan_HeapLog/Debug/cl.command.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/corelan/pin/908e6f82461c17d19048986d672ebe8ab80a33a8/win32/Corelan_HeapLog/Debug/cl.command.1.tlog
--------------------------------------------------------------------------------
/win32/Corelan_HeapLog/Debug/link.command.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/corelan/pin/908e6f82461c17d19048986d672ebe8ab80a33a8/win32/Corelan_HeapLog/Debug/link.command.1.tlog
--------------------------------------------------------------------------------
/win32/Corelan_HeapLog/Debug/link.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/corelan/pin/908e6f82461c17d19048986d672ebe8ab80a33a8/win32/Corelan_HeapLog/Debug/link.read.1.tlog
--------------------------------------------------------------------------------
/win32/Corelan_HeapLog/Debug/link.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/corelan/pin/908e6f82461c17d19048986d672ebe8ab80a33a8/win32/Corelan_HeapLog/Debug/link.write.1.tlog
--------------------------------------------------------------------------------
/win32/Corelan_HeapLog/Debug/vc110.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/corelan/pin/908e6f82461c17d19048986d672ebe8ab80a33a8/win32/Corelan_HeapLog/Debug/vc110.pdb
--------------------------------------------------------------------------------
/win32/Corelan_HeapLog/makefile:
--------------------------------------------------------------------------------
1 | ##############################################################
2 | #
3 | # DO NOT EDIT THIS FILE!
4 | #
5 | ##############################################################
6 |
7 | # If the tool is built out of the kit, PIN_ROOT must be specified in the make invocation and point to the kit root.
8 | ifdef PIN_ROOT
9 | CONFIG_ROOT := $(PIN_ROOT)/source/tools/Config
10 | else
11 | CONFIG_ROOT := ../Config
12 | endif
13 | include $(CONFIG_ROOT)/makefile.config
14 | include makefile.rules
15 | include $(TOOLS_ROOT)/Config/makefile.default.rules
16 |
17 | ##############################################################
18 | #
19 | # DO NOT EDIT THIS FILE!
20 | #
21 | ##############################################################
22 |
--------------------------------------------------------------------------------
/win32/Corelan_HeapLog/makefile.rules:
--------------------------------------------------------------------------------
1 | ##############################################################
2 | #
3 | # This file includes all the test targets as well as all the
4 | # non-default build rules and test recipes.
5 | #
6 | ##############################################################
7 |
8 |
9 | ##############################################################
10 | #
11 | # Test targets
12 | #
13 | ##############################################################
14 |
15 | ###### Place all generic definitions here ######
16 |
17 | # This defines tests which run tools of the same name. This is simply for convenience to avoid
18 | # defining the test name twice (once in TOOL_ROOTS and again in TEST_ROOTS).
19 | # Tests defined here should not be defined in TOOL_ROOTS and TEST_ROOTS.
20 | TEST_TOOL_ROOTS := Corelan_HeapLog
21 |
22 | # This defines the tests to be run that were not already defined in TEST_TOOL_ROOTS.
23 | TEST_ROOTS :=
24 |
25 | # This defines a list of tests that should run in the "short" sanity. Tests in this list must also
26 | # appear either in the TEST_TOOL_ROOTS or the TEST_ROOTS list.
27 | # If the entire directory should be tested in sanity, assign TEST_TOOL_ROOTS and TEST_ROOTS to the
28 | # SANITY_SUBSET variable in the tests section below (see example in makefile.rules.tmpl).
29 | SANITY_SUBSET :=
30 |
31 | # This defines the tools which will be run during the the tests, and were not already defined in
32 | # TEST_TOOL_ROOTS.
33 | TOOL_ROOTS :=
34 |
35 | # This defines the static analysis tools which will be run during the the tests. They should not
36 | # be defined in TEST_TOOL_ROOTS. If a test with the same name exists, it should be defined in
37 | # TEST_ROOTS.
38 | # Note: Static analysis tools are in fact executables linked with the Pin Static Analysis Library.
39 | # This library provides a subset of the Pin APIs which allows the tool to perform static analysis
40 | # of an application or dll. Pin itself is not used when this tool runs.
41 | SA_TOOL_ROOTS :=
42 |
43 | # This defines all the applications that will be run during the tests.
44 | APP_ROOTS :=
45 |
46 | # This defines any additional object files that need to be compiled.
47 | OBJECT_ROOTS :=
48 |
49 | # This defines any additional dlls (shared objects), other than the pintools, that need to be compiled.
50 | DLL_ROOTS :=
51 |
52 | # This defines any static libraries (archives), that need to be built.
53 | LIB_ROOTS :=
54 |
55 |
56 | ##############################################################
57 | #
58 | # Test recipes
59 | #
60 | ##############################################################
61 |
62 | # This section contains recipes for tests other than the default.
63 | # See makefile.default.rules for the default test rules.
64 | # All tests in this section should adhere to the naming convention: .test
65 |
66 |
67 | ##############################################################
68 | #
69 | # Build rules
70 | #
71 | ##############################################################
72 |
73 | # This section contains the build rules for all binaries that have special build rules.
74 | # See makefile.default.rules for the default build rules.
75 |
--------------------------------------------------------------------------------
/win32/createpintool.py:
--------------------------------------------------------------------------------
1 | #
2 | # Quick 'n dirty script to create a new Pin Tool
3 | # corelanc0d3r
4 | # www.corelan.be
5 | #
6 | # Place this file in the source/tools folder of your pin installation
7 | # and run it from there
8 |
9 | import os, sys, shutil
10 |
11 |
12 | def create_pin_project(projectname):
13 | print "[+] Creating new PIN project %s" % projectname
14 | print " - Copying clean project"
15 | currentfolder = os.getcwd()
16 | projectsource = os.path.join(currentfolder,"MyPinTool")
17 | newproject = os.path.join(currentfolder,projectname)
18 | shutil.copytree(projectsource,newproject)
19 | print "[+] Updating project files"
20 | dirList = os.listdir(newproject)
21 | for fname in dirList:
22 | currentfile = os.path.join(newproject,fname)
23 | newfilename = fname.replace("MyPinTool",projectname)
24 | print " - Processing %s -> %s" % (fname,newfilename)
25 | filecontents = open(currentfile,"rb").read()
26 | os.remove(os.path.join(newproject,fname))
27 | updatedcontents = filecontents.replace("MyPinTool",projectname)
28 | objfile = open(os.path.join(newproject,newfilename),"wb")
29 | objfile.write(updatedcontents)
30 | objfile.close()
31 | print "[+] Done"
32 | return
33 |
34 |
35 |
36 | # main
37 | projectname = ""
38 | if len(sys.argv) > 1:
39 | projectname = sys.argv[1]
40 | else:
41 | print "Please provide a destination Pin project name"
42 | sys.exit()
43 |
44 | create_pin_project(projectname)
--------------------------------------------------------------------------------