我的一个朋友从Facebook下载了一些恶意软件,我很想知道它的作用而不会感染自己.我知道你不能真正反编译.exe,但我至少可以在Assembly中查看它或附加调试器吗?
编辑说它不是.NET可执行文件,没有CLI标头.
我正在努力寻找有助于我的管理层理解对编译的C代码进行逆向工程的难易程度的事实.
之前在这个网站上已经提出了类似的问题(参见例如,是否可以"反编译"Windows .exe?或者至少查看程序集?或者可能反编译用C编写的DLL?),但这些问题的要点是反编译编译的C代码"很难,但并非完全不可能".
为了促进基于事实的答案,我包含了一个神秘函数的编译代码,我建议这个问题的答案通过它们是否可以确定这个函数的作用来衡量所提出技术的成败.这可能是不寻常的,但我认为这是获得这个工程问题的"良好主观"或事实答案的最佳方式.因此,你最好猜测这个功能在做什么,以及如何做?
这是使用gcc在Mac OSX上编译的已编译代码:
_mystery:
Leh_func_begin1:
pushq %rbp
Ltmp0:
movq %rsp, %rbp
Ltmp1:
movsd LCPI1_0(%rip), %xmm1
subsd %xmm0, %xmm1
pxor %xmm2, %xmm2
ucomisd %xmm1, %xmm2
jbe LBB1_2
xorpd LCPI1_1(%rip), %xmm1
LBB1_2:
ucomisd LCPI1_2(%rip), %xmm1
jb LBB1_8
movsd LCPI1_0(%rip), %xmm1
movsd LCPI1_3(%rip), %xmm2
pxor %xmm3, %xmm3
movsd LCPI1_1(%rip), %xmm4
jmp LBB1_4
.align 4, 0x90
LBB1_5:
ucomisd LCPI1_2(%rip), %xmm1
jb LBB1_9
movapd %xmm5, %xmm1
LBB1_4:
movapd %xmm0, %xmm5
divsd %xmm1, %xmm5
addsd %xmm1, %xmm5
mulsd …Run Code Online (Sandbox Code Playgroud)