m00*_*000 6 linux debugging reverse-engineering strace
我试图用来strace
理解二进制程序如何使用内存.
但是,strace
为了更加用户友好,默认输出将任何char *
缓冲区打印为相应的字符串.
read(3, "Tell me, Muse, of that man of ma"..., 4096) = 270
Run Code Online (Sandbox Code Playgroud)
有没有办法告诉strace
打印其内容旁边的字符串的实际地址?
如果不可能同时打印两者,则只打印字符串的地址而不是截断的内容也可以.
Bri*_*ell 18
-e raw = read应该做你想要的.不需要进行源修改.
broadway @ creepspread:〜%strace -e raw =读取ls 2>&1 | grep ^读取
读取(0x3,0x7fff5ea52e78,0x340)= 0x340
读取(0x3,0x7fff5ea52e48,0x340)= 0x340
读取(0x3,0x7fff5ea52e18,0x340)= 0x340
读取(0x3,0x7fff5ea52de8,0x340)= 0x340
读取(0x3,0x7fff5ea52ca8,0x340)= 0x340
读取(0x3,0x7fff5ea52c48,0x340)= 0x340
读取(0x3,0x7fff5ea52c18,0x340)= 0x340
读取(0x3,0x7fef1433f000,0x400)= 0x136
读(0x3,0x7fef1433f000,0x400)= 0