导航:首页 > 源码编译 > gcc编译c语言后怎么反编译

gcc编译c语言后怎么反编译

发布时间:2022-09-07 01:38:07

‘壹’ 用C语言写的程序怎么进行反编译

c语言写的程序一般很难反编译的,即使可以,也不可能得到源码的。编译的完成后已经转化为机器语言了,不是完全可逆的过程

‘贰’ 用C语言编写了一个程序,源代码和工程文件都弄丢了,只剩下.exe的二进制程序文件。怎么反编译出.c

这个确实很困难。如果是DOS程序还好办,如果是Windows程序,其反汇编的工作量相当巨大。而且这仅是反汇编,得到的只是勉强能用的汇编代码,而从汇编代码再反工程到.C,真的是件很困难的事。程序简单还好办,复杂的就真是件费力的事了。放弃吧。

如果是自己写的程序,只要整个设计还记得,那就重新写一遍吧。

‘叁’ c语言怎么反编译啊,教教我

用ida
pro,这是市面上能买到的软件中最棒的反向工程软件。
你可以试试看,它配合插件甚至可以得到几乎乱真的C/C++伪码,甚至不用修改就能编译回去。

‘肆’ linux gcc编译.c文件成为一个可执行文件,怎么复原.c文件

完全复原基本不可能,只能使用某些工具生成伪C代码。比如IDA等

‘伍’ c语言生成的exe文件还能不能反编译成源程序

不能!!!!!!
只能人为的翻译。

没有这样的软件!!!!!!

如果要是能反编译,这个世界的程序员就全失业了!

‘陆’ gcc可以编译C语言,而GCC又是C语言编写的,那用c编写的gcc又是怎么编译的呢 就像unix是C写的那是怎么编译的

比如你要开发一个新的c编译器,你可以用c实现,然后用现在的编译器去编译这个新编译器,反之亦然。

所以这个根源就在于第一个可以使用的编译器是怎么来的。你知道最开始程序是怎么写的吗,先用汇编写出伪代码,然后再对照表转换成二进制数据,再以纸袋打孔的方式,输入进计算机。

‘柒’ 用gcc编译器C语言程序的技巧

方法/步骤
1、编写c代码,并输入以下代码,生成文件hello.c
[root@wahoo
test]#
vim
hello.c
#include
<stdio.h>
#define
DISPLAY
"hello
c!"
int
main(void)
{
printf("%s\n",
DISPLAY
);
return
0;
}
ZZ(说明:ZZ当前文件进行快速保存操作)
2、预编译(Preprocessing)
会对各种预处理指令(#include
#define
#ifdef
等#开始的代码行)进行处理,删除注释和多余的空白字符,生成一份新的代码
[root@wahoo
test]#gcc
-E
hello.c
-o
hello.i
E
参数
通知gcc对目标文件进行预编译,这里是对文件hello.c文件
o
参数
是对命令输出结果进行导入操作,这里是把
gcc
-E
hello.c
操作结果输出到文件hello.i(命名要自定义)中进行保存
这个命令执行完后我们目录下多了一个文件hello.i,你可以查阅一下文件的内容。
3、编译(Compilation)
对代码进行语法、语义分析和错误判断,生成汇编代码文件
[root@wahoo
test]#gcc
-S
hello.i
-o
hello.s
S
参数
通知gcc对目标文件进行编译,这里是对文件hello.i文件
通过这一步我们知道
C语言跟汇编的
关系,至于他们之前是如何进行转换的,大家可以进行更深入的学习与探讨。
此时目录下多了一个hello.s文件,内容如图
4、汇编(Assembly)
把汇编代码转换与计算机可认识的二进制文件,要知道计算机只认识0和1呢
[root@wahoo
test]#gcc
-c
hello.s
-o
hello.o
c
参数
通知gcc对目标文件执行指令转换操作
此步骤我们得到文件hello.o
大家也同样打开文件查看一下,这个文件里面几乎没几个字符大家能看懂,这就对了,但大家可以通过这种方法将其转化为我们可读的形式:
[root@wahoo
test]#readelf
-a
hello.o
5、链接(Linking/Build)
通俗的讲就是把多个*.o文件合并成一个可执行文件,二进制指令文件
[root@wahoo
test]#gcc
hello.o
-o
hello
这里我们就得到了一个可以直接在系统下执行的文件
hello
我们也可以对这个文件进行readelf操作,也可以进行二进制指令转汇编的操作
[root@wahoo
test]#objmp
-d
hello
6、程序运行
[root@wahoo
test]#./hello
hello
c!
7、总结:gcc
编译c程序的主要过程包括
预编译->编译->汇编->连接
四个过程,每个过程都分别进行不同的处理,了解了这其中的一些原理,对c编程的理解大有益处

‘捌’ 汇编语言 菜鸟题gcc换写成C 求高人指点~~~

反编译成C语言。这几个都很简单,基本上是原C语言的编译而 成。

第一个图

intfn(inta,intb)
{
return(a+b)*2;
}

第二个图

inthw3_3(inta)
{
intb;
if(a>0)
b=1;
else
b=0;
returnb;
}

第三个图

intfn(intn)
{
intm=1;
while(n>1)
{
m*=n;
n-=1;
}
returnm;
}

‘玖’ C语言源代码编译一次后,就不能再编译

你用输出的二进制运行文件覆盖了源代码,改成gcc helloworld.c -o helloworld, (去掉后缀)
-o 表示输出到

‘拾’ gcc下怎么将 .0后缀反编译成源代码

那叫反编译 但是所有的反编译只能还原为汇编代码 以描述程序流程

命令是 objmp , 将2进制代码还原为C/C++代码的软件不存在

阅读全文

与gcc编译c语言后怎么反编译相关的资料

热点内容
卡尔曼滤波算法书籍 浏览:769
安卓手机怎么用爱思助手传文件进苹果手机上 浏览:844
安卓怎么下载60秒生存 浏览:803
外向式文件夹 浏览:240
dospdf 浏览:431
怎么修改腾讯云服务器ip 浏览:392
pdftoeps 浏览:496
为什么鸿蒙那么像安卓 浏览:736
安卓手机怎么拍自媒体视频 浏览:186
单片机各个中断的初始化 浏览:724
python怎么集合元素 浏览:481
python逐条解读 浏览:833
基于单片机的湿度控制 浏览:499
ios如何使用安卓的帐号 浏览:883
程序员公园采访 浏览:812
程序员实战教程要多长时间 浏览:979
企业数据加密技巧 浏览:135
租云服务器开发 浏览:814
程序员告白妈妈不同意 浏览:336
攻城掠地怎么查看服务器 浏览:601