当前位置:首页>开发>正文

c语言是如何编译成二进制 如何编译android 可执行的二进制文件

2023-04-22 09:52:03 互联网 未知 开发

 c语言是如何编译成二进制 如何编译android 可执行的二进制文件

c语言是如何编译成二进制

源代码会经过预编译--->编译---->汇编----->连接几个步骤最终生成可执行文件.
1.预编译,把源代码中的宏展开并把包含的文件的源代码插入程序的源代码中.
2.编译,把源代码编译成二进制的目标文件.但是此时目标文件还是不可执行的.
3.汇编,这一步主要是处理源代码中的汇编代码.
4.连接,把目标代码和二进制的库文件以及其它内容合并成最终的可执行文件.

如何编译android 可执行的二进制文件

Android由于其代码是放在dalvik虚拟机上的托管代码,所以能够很容易的将其反编译为我们可以识别的代码。
  之前我写过一篇文章反编译Android的apk包到smali文件 然后再重新编译签名后打包实现篡改apk的功能。
  最近又有一种新的方法来实现直接从Android apk包里的classes.dex文件,把dex码反编译到java的.class二进制码,然后从.class二进制码反编译到java源码想必就不用我来多说了吧。
  首先我们需要的工具是dex2jar和jd-gui
  其中第一个工具dex2jar是用来把classex.dex文件也就是dex二进制码转化为java的标准.class二进制码,然后jd-gui是把标准的.class二进制码再反编译为java源码。
  首先从apk包里面提取出classes.dex
  放到dex2jar目录下
  然后在命令行下执行
  dex2jar.bat classes.dex

  这时执行成功后会生成一个classes.dex.dex2jar.jar文件
  这个文件再用jd-gui打开,如下图

  几乎跟我自己写的这个程序的源码一样
  提供这个反编译方法主要用于大家学习与研究,有问题可以与我邮件讨论。
  希望大家不要用这个方法从事恶意的活动,毕竟,别人辛辛苦苦写程序也不容易,用这个方法可以大致的学习到别人写的程序的逻辑,架构,希望对大家有所帮助。
  Android 逆向apk程序的心得
  本文主要介绍如何逆向一个Android的APK应用程序,本文提供的方法仅供研究学习之用。
  本文需要用到的工具有
  jdk 这个用于搭建java运行环境
  AXMLPrinter2.jar 这个用于逆向.xml文件
  baksmali.jar 这个用于逆向classex.dex文件
  由于Android的.apk文件实际上就是一个zip文件 可以直接用winrar打开

怎么编写二进制代码

我曾经用2进制编写过代码,不过不是纯的2进制,而是首先算出2进制代码,然后将其转化成16进制.
编程环境不需要,因为编程环境的功能就是把你的某种语言代码转化成相应的2进制. 既然你直接写2进制代码还需要什么编程环境.
你需要的应该是一个烧写工具将你的代码直接写到内存中(ram ,rom啊什么的)相应地址,指示cpu跳转到这个地址就好了.
能否直接执行2进制命令,这问题就太外行了,你可以随便找个计算机专业人问问,不能简单回答能不能.

如何将一个函数编译成二进制文件

通过下面这条命令,main.c和swap.c 就产生了一个可执行二进制文件swap

》gcc mian.c swap.c -o swap

那么这条命令是么样把源程序变成可执行程序的呢?

步骤如下:

1、驱动程序首先调用C预处理器(CPP)把源文件翻译成一个ASCII中间文件mian.i,预处理器会把#include所包含的内容都插入到声明的位置,并且做宏替换,把main.c 文件的第3行 的SIZE替换成2(注意这里只是做简单的文本替换)。

2、接下来驱动程序的C编译器将main.i翻译成汇编语言程序main.s

3、然后驱动程序的汇编器将汇编语言程序main.s 翻译成可重定位的二进制文件main.o

4、最后运行链接器将main.o 与swap.o 以及一些必要的系统目标文件(比如你将调用的printf函数就是printf.o)连接起来变成一个可执行的二进制文件。

C#如何编译为二进制可执行文件?

默认情况下,C#编译后是一个EXE文件,但是却依赖于.NET FRAMEWORK框架才能运行。如果要脱离这个框架,你需要把C#生成的EXE文件编译成本机代码,然后才能脱离这个.NET框架运行。完整实例,可以参考:http://hi.baidu.com/44498/blog/item/dabd37166a11bd10962b437d.html

最新文章