vuzzer icon indicating copy to clipboard operation
vuzzer copied to clipboard

An issue of libdft(libdft_core.c)

Open mcgrady1 opened this issue 8 years ago • 6 comments

Hi, (1) Some types of instruction, for example movdqu, which would influence the taint analysis result , are ignored by libdft, so how can you get the right taint result? (2) XADD instruction, source operand could be a memory operand?(xadd_m2r) Thanks for your reply!

mcgrady1 avatar Apr 13 '17 09:04 mcgrady1

Hi, Please note that libdft does not have full support of all x86 instructions, including SSE, thus it does not handle instructions involving xmm reg. to my understanding, XADD does not have src as mem.

tosanjay avatar Apr 16 '17 09:04 tosanjay

Hi, (1)I know, but some programs will use SSE, which will influence the taint and fuzzing result
(2)You are right, so the xadd_m2r_xxx function may be wrong, can you check the source code?

mcgrady1 avatar Apr 16 '17 12:04 mcgrady1

Hi, Regarding you second point the xadd_m2r_xxx analysis is specific to instructions which have memory operand as destination, the naming convention is such as the first m specifies the destination operand type and second r specifies the src operand type. https://github.com/vusec/vuzzer/blob/master/support/libdft/src/libdft_core.c#L7114. Please check here that we call that analysis routine when the first operand (destination operand) is memory .

vivek425ster avatar Apr 16 '17 13:04 vivek425ster

source coe: tag_t dst_tag = thread_ctx->vcpu.gpr[dst][1]; tag_t src_tag = tag_dir_getb(tag_dir, src);

thread_ctx->vcpu.gpr[dst][1] = tag_combine(dst_tag, src_tag); tag_dir_setb(tag_dir, src, dst_tag);

xadd instruction: Temporary = Source + Destination; Source = Destination; Destination = Temporary;

I don't think this code is correct.

mcgrady1 avatar Apr 17 '17 02:04 mcgrady1

HI, I 'm deploying vuzzer on exactly the same platform as suggested. while changing flags,i found out makefile.libdft is presented on vuzzer/support directory ,not under the vuzzer/support/libdft.

Also,i think a "#" is missing(the 4th flag) in makeflie.libdft, something wrong happened while generating? Thanks for your reply!

lzyplayer avatar Jul 19 '17 02:07 lzyplayer

Hi,

You need to run the command make support-libdft from the top folder.

vivek425ster avatar Jul 19 '17 06:07 vivek425ster