elf⽂件反编译C语⾔,如何将ELF可执⾏⽂件转换为C代码?⽣成的C代码不需要是⼈类可读的... 我有⼀个ELF⽂件,我想反编译成C代码,并对⽣成的C代码进⾏简单的更改,并将其重建为ELF.
反编译的C代码不需要完全是⼈类可读的.例如,如果变量和函数名称被混淆,那就没关系. PS:如果反编译为C不可能或不容易,我愿意考虑反编译为汇编语⾔,虽然调整汇编源对我来说⾮常困难.
更新:您可以假设我正在使⽤以下C程序来获取我的a.out ELF.现在,进⼀步假设我已经失去了这个原始的C源代码.所以,我现在想把它反编译成(⼀个可能混淆的)C源码,其中我⾄少能够改变字符串“world”,“Hello”和“Bye”之类的⼩东西,或者能够反转if语句的意义等 #include
#include
代码转换char buf[256];
const char *Hello = "Hello";
const char *Bye = "Bye";
const char *Who = "world";
char * greet(const char *greeting, const char *str) {
strcpy(buf, greeting);
strcat(buf, ", ");
strcat(buf, str);
strcat(buf, "!");
return buf;
}
int main(int argc, char *argv[]) {
int sayHello = 0;
if(sayHello) {
printf("%s\n", greet(Hello, Who));
} else {
printf("%s\n", greet(Bye, Who));
}
return 0;
}