-
Notifications
You must be signed in to change notification settings - Fork 77
Open
Description
Hi
I tried to run one-trace against toy_example.exe .
(In the following script, absolute paths were used in practice.)
ref. https://github.com/sslab-gatech/winnie/tree/master/harnessgen#one-trace
$ pin.exe -t \path\to\tools\Tracer\x64\Debug\Tracer.dll -logfile "\path\to\cor1_1" -trace_mode "all" -only_to_target "\path\to\toy_example.exe " -only_to_lib "\path\to\example_library.dll " -- path\to\toy_example.exe "test.txt"
example_library loaded at 00007FFE21880000
msg:Hello, World!
Error 1
Result: 0The contents of the test.txt are as follows
Hello, World!In this case, this script don't emit memdump. So I make empty memdump file.
$ touch memdumpThe contents of the drltrace.PID.log are as follows
CHECKING MODULE...
TARGET MODULE START ADDR:0x140000000
TARGET MODULE END ADDR: 0x14000f000 ? ??:0
==
Module Table: version 4, count 14
0 , 0 , 0x40000000, 0x4000f000, 0x80001145, 0000000000000000, 0x00000000, 0x00000000, C:\path\to\winnie\harnessgen\lib\pin\toy_example.exe
1 , 1 , 0x2d5f0000, 0x2d8b8000, 0x5abf0710, 0000000000000000, 0x00000000, 0x00000000, C:\Windows\System32\KERNELBASE.dll
2 , 2 , 0x2f980000, 0x2fa3e000, 0x5f3170d0, 0000000000000000, 0x00000000, 0x00000000, C:\Windows\System32\KERNEL32.DLL
3 , 3 , 0x2fc30000, 0x2fe25000, 0x2fc30000, 0000000000000000, 0x00000000, 0x00000000, C:\Windows\SYSTEM32\ntdll.dll
4 , 4 , 0x2d8c0000, 0x2d9c0000, 0x5b196110, 0000000000000000, 0x00000000, 0x00000000, C:\Windows\System32\ucrtbase.dll
5 , 5 , 0x204b0000, 0x204cb000, 0x4096fe30, 0000000000000000, 0x00000000, 0x00000000, C:\Windows\SYSTEM32\VCRUNTIME140.dll
6 , 6 , 0x00000000, 0x00085000, 0x0003f6bc, 0000000000000000, 0x00000000, 0x00000000, C:\vendor\conemu-maximus5\ConEmu\ConEmuHk64.dll
7 , 7 , 0x2e7b0000, 0x2e950000, 0x5cf77f30, 0000000000000000, 0x00000000, 0x00000000, C:\Windows\System32\USER32.dll
8 , 8 , 0x2d9c0000, 0x2d9e2000, 0x2d9c0000, 0000000000000000, 0x00000000, 0x00000000, C:\Windows\System32\win32u.dll
9 , 9 , 0x2f950000, 0x2f97b000, 0x5f2a48d0, 0000000000000000, 0x00000000, 0x00000000, C:\Windows\System32\GDI32.dll
10 , 10 , 0x2da90000, 0x2db9d000, 0x5b550af0, 0000000000000000, 0x00000000, 0x00000000, C:\Windows\System32\gdi32full.dll
11 , 11 , 0x2d9f0000, 0x2da8d000, 0x5b3f5390, 0000000000000000, 0x00000000, 0x00000000, C:\Windows\System32\msvcp_win.dll
12 , 12 , 0x2f1e0000, 0x2f210000, 0x5e3c14d0, 0000000000000000, 0x00000000, 0x00000000, C:\Windows\System32\IMM32.DLL
13 , 13 , 0x21880000, 0x21888000, 0x43101540, 0000000000000000, 0x00000000, 0x00000000, C:\path\to\winnie\harnessgen\lib\pin\example_library.dllThe following is the result of running the synthesizer.py against "C:\Windows\System32\KERNELBASE.dll" .
$ python3 synthesizer.py harness -t drltrace.PID.log -d memdump -s "C:\Windows\System32\KERNELBASE.dll"
Traceback (most recent call last):
File "C:\path\to\winnie\harnessgen\synthesizer.py", line 147, in <module>
main()
File "C:\path\to\winnie\harnessgen\synthesizer.py", line 135, in main
syn = SingleSynthesizer(args.trace_file, args.dump_dir,
File "C:\path\to\winnie\harnessgen\common.py", line 472, in __init__
self.start_cid, self.trace_tid = ret_start_point(self.trace_pn, self.start_func.encode())
File "C:\path\to\winnie\harnessgen\common.py", line 33, in ret_start_point
cid = int(line.split(b"CALLID[")[1].split(b"]")[0])
IndexError: list index out of range
exit status 1Lines 23 to 37 in b046bce
| def ret_start_point(pn: str, keyword: bytes): | |
| """ | |
| 1) return cid and tid from this example line | |
| CALLID[3] TID[3756] IJ T2M 0x63621040->0x65cf6450(avformat-gp-57.dll!avformat_open_input+0x0) | |
| 2) for now, this function is case sensitive | |
| """ | |
| with open(pn, 'rb') as f: | |
| lines = f.readlines() | |
| for line in lines: | |
| if keyword in line and b"0x0" in line: | |
| cid = int(line.split(b"CALLID[")[1].split(b"]")[0]) | |
| tid = int(line.split(b"TID[")[1].split(b"]")[0]) | |
| return cid, tid | |
| raise Exception("Cannot find the starting function from the trace file") |
The ret_start_point method should return cid and tid, but where are the cid and tid in this drltrace.PID.log?
1 , 1 , 0x2d5f0000, 0x2d8b8000, 0x5abf0710, 0000000000000000, 0x00000000, 0x00000000, C:\Windows\System32\KERNELBASE.dllIf there is any incorrect use of the above, please let us know.
Thanks.
Metadata
Metadata
Assignees
Labels
No labels