精华内容
下载资源
问答
  • 2021-02-26 12:11:19

    一.准备工具

    1.gcc

    GCC是GNU公社的一个项目。是一个用于编程开发的自由编译器。最初,GCC只是一个C语言编译器,它是GNU C Compiler
    的英文缩写。随着众多自由开发者的加入和GCC自身的发展,如今的GCC已经是一个包含众多语言的编译器了。其中包括
    C,C++,Ada,Object C和Java等。所以,GCC也由原来的GNU C Compiler变为GNU Compiler
    Collection。也就是
    GNU编译器家族的意思。当然,如今的GCC借助于它的特性,具有了交叉编译器的功能,即在一个平台下编译另一个平台的代码。

    直到现在,GCC的历史仍然在继续,它的传奇仍然被人所传颂。而且更重要的是GCC完全是一款免费的自由软件,加之其强大的功能所以深受广大用户的喜爱。

    方法一:
    打开控制台输入以下代码:

    sudo apt-get  build-dep  gcc;
    

    方法二:
    打开控制台输入以下代码:

    sudo apt-get  install  build-essential;
    

    安装完了可以输入以下代码查看版本信息

    gcc --version
    

    ————————————————
    2. vim

    可以直接在控制带输入以下代码安装 :sudo apt-get install vim

    二.编译运行C程序

    1.安装完成后新建文件名为hello.c的源文件:

    2.输入vim hello.c

    键入i 进入insert模式(即编辑输入模式),写入如下经典代码:

    #include<stdio.h>
    int main(void)
    {
    printf(“Hello, world!\n”);
    return 0;
    }
    

    输入完成后,Esc 回到normal模式,键入:wq 保存退出vim

    ————————————————

    3.在终端执行 gcc hello.c -o hello 编译。

    4.运行程序./hello

    更多相关内容
  • 程序编译的详细过程

    千次阅读 2020-12-07 09:44:15
    一、c/c++程序编译过程 C语言的编译连接过程把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行文件:win下是.obj,linux下是.so),通过编译和链接两个步骤实现。 为了我们编写的hello.c程序可以...

    一、c/c++程序编译过程

    C语言的编译连接过程把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行文件:win下是.obj,linux下是.so),通过编译和链接两个步骤实现。
    为了我们编写的hello.c程序可以被执行,驱动硬件电路工作,hello.c程序必须经过一些列处理步骤,将源程序转化为可执行性的目标程序。

    编译:把文本形式源代码翻译成机器语言形式的目标文件的过程
    链接:把目标文件、操作系统的启动代码和用到的库文件进行组织,最终生成可执行文件代码的过程。
    编译器和链接器
    源程序到目标程序执行(GCC编译源代码)有四个步骤:预处理-》编译-》汇编-》链接

    1.预处理(.c—.i)处理宏
    预处理的过程主要处理包括以下过程:

    1. 将所有的#define删除,并且展开所有的宏定义
    2. 处理所有的条件预编译指令,比如#if #ifdef #elif #else #endif等
    3. 处理#include 预编译指令,将被包含的文件插入到该预编译指令的位置。
    4. 删除所有注释 “//”和”/* */”.
    5. 添加行号和文件标识,以便编译时产生调试用的行号及编译错误警告行号。
    6. 保留所有的#pragma编译器指令,(1)设定编译器状态,(2)指示编译器完成一些特定的动作。
      命令:
      gcc -E hello.c -o hello.i //可以用gcc的参数-E来参看。参数-E表示只进行预处理 或者也可以使用以下指令完成预处理过程
      cpp hello.c > hello.i /* 直接cat hello.i 你就可以看到预处理后的代码 */

    2.编译(.i—.s)转换为汇编语言文件
    这个阶段编译器主要做词法分析、语法分析、语义分析等,在检查无错误后,把代码翻译成汇编语言。可用gcc的参数-S来参看。
    编译器(ccl)将文本文件hello.i 翻译成文本文件hello.s, 它包含一个汇编语言程序。 一条低级机器语言指令。
    命令:gcc -S hello.i -o hello.s
    作用:将预处理输出文件hello.i汇编成hello.s文件

    3.汇编(.s—.o)得到机器语言
    汇编器将汇编代码转变成机器可以执行的命令,每一个汇编语句几乎都对应一条机器指令。汇编相对于编译过程比较简单,根据汇编指令和机器指令的对照表一一翻译即可。
    汇编器as 将hello.s 翻译成机器语言保存在hello.o 中(二进制文本形式)。
    命令:gcc –c hello.c –o hello.o或者$ as hello.s –o hello.o
    由于hello.o的内容为机器码,不能以普通文本形式的查看(vi 打开看到的是乱码)。

    4.链接
    通过调用链接器ld来链接程序运行需要的一大堆目标文件,以及所依赖的其它库文件,最后生成可执行文件。就是将二进制文件链接成为一个可执行的指令。
    链接主要内容:把各个模块之间相互引用的部分处理好,使得各个模块之间能够正确地衔接。
    链接主要过程:地址和空间分配,符号决议,重定位等。
    链接分为静态链接和动态链接。
    静态链接是指在编译阶段直接把静态库加入到可执行文件中去,这样可执行文件会比较大。
    动态链接则是指链接阶段仅仅只加入一些描述信息,而程序执行时再从系统中把相应动态库加载到内存中去。
    gcc生成动态库、静态库:https://www.jb51.net/article/34990.htm

    5.运行
    平常用下面的命令行直接运行:

    gcc -c hello.c
    

    得到 hello.o 文件。.o是object文件的意思。不可以执行。
    用-o编译链接一下:

    gcc -o hello hello.c
    ./hello
    

    成功运行,最后使用 ldd 命令查看hello依赖的动态库。

    汇编和反汇编的区别
    汇编:将汇编语言翻译成机器语言的过程。 也就是hello.s文件经过汇编器变成二进制目标文件hello.o文件的过程。
    反汇编:由已生成的机器语言(二进制语言)转化为汇编语言的过程,也就是汇编的逆向过程。
    在Linux下利用反汇编器对.o文件进行反汇编,得到的内容和hello.s是一致的
    命令: objdump -d hello.o

    二、java程序编译过程

    java文件首先被编译成字节码,jvm运行字节码文件,java程序执行包括了编译和运行两部分。
    编译:在编译一个类的时候,如果其依赖的一个类还没有被编译,被依赖的类就会先被编译,然后引用,否则直接引用,当找不到被依赖类的java或class文件时,就会报cant find symbol错误。class文件中包含常量池和字节码两部分,常量池包含了一些类信息,常量信息、符号引用,字节码包含的是各个方法的字节码
    运行:运行包括加载和执行两部分,jvm并不会把所有的字节码文件都一次加载进内存中,而是当第一次用到的时候才加载,并且只加载一次。
    当类被加载时,会在堆中创建该对象,同时会在方法区中存储该类的静态变量(类变量、类方法等),并生成映射关联堆中的对象与其方法区中存储的数据。
    假设现在有A.class和B.class,在A的main函数中创建了B对象且调用了B的b()方法:
    类的加载时机:当这个类被实例化的时候如:new A();或者执行这个类里面的static(静态方法时)如:main方法,这个类才会被加载
    (1)执行java A命令,启动一个jvm进程,找到A的字节码文件,进行加载,将A的类信息存储在方法区中
    (2)找到A的main函数入口,发现要new B对象,加载B的字节码文件,将类信息存储在方法区中,并在堆中创建B对象
    (3)在调用B的b()方法时,首先jvm根据引用找到找到B对象的在堆中的位置,然后根据映射找到方法区中,B的方法表,获取b()方法的字节码地址
    (4)运行b()方法

    展开全文
  • 微信小程序如何进行编译详细教程

    万次阅读 热门讨论 2021-06-28 21:04:35
    程序编译,其实还是简单的,要想拿到微信小程序源码,先要拿到小程序的包,用反编译脚本跑一下,微信小程序代码包里的所有文件、所有资源就出来了(除了project.config.json小程序配置文件)。拿到源码后,跑...

    前言介绍

    小程序反编译,其实还是简单的,要想拿到微信小程序源码,先要拿到小程序的包,用反编译脚本跑一下,微信小程序代码包里的所有文件、所有资源就出来了(除了project.config.json小程序配置文件)。拿到源码后,跑起来是能跑,但登录、授权等涉及到appid的功能是不能用的,因为被反编译小程序的服务端appid和你本地添加的不一样,这就是为啥拉下来的源码没有project.config.json文件的原因,项目中appid是配置在这个文件里,这里一定程度上保护原小程序。

    最新版:史上最简单的全自动微信小程序反编译工具-大师原创

    最新版:史上最简单的全自动微信小程序反编译工具-大师原创

    最新版:史上最简单的全自动微信小程序反编译工具-大师原创

    准备工具

    1、nodejs环境,这是反编译脚本的运行环境,下方有地址。

    2、小程序包解密工具,PC版解包无需模拟器,附件中有这个。

    3反编译脚本下载,附件中有这个。

    4、微信PC端,运行小程序,自己下载电脑端微信。

    操作流程

    第一步:nodejs安装

    安装nodejs下载链接:

    https://nodejs.org/zh-cn/download/ 或者 http://nodejs.cn/download/安装的过程一路next就可以了,安装后将nodejs设置为环境变量。

    检查是否安装:打开cmd,测试是否安装成功,在命令行输入node -v,

    结果:

    第二步:在微信PC端运行需要反编译的小程序,我这边运行:,每个页面都点点。

    第三步:打开小程序包解密工具,选择加密小程序包,按时间对应的第一个就是你要的小程序包,可以对一下APPID是否一致。

    第四步:打开反编译脚本所在的目录,我把刚刚解出来的包wx0a43b778b69841cd.wxapkg也放在这个目录下了。

    先运行以下命令:

    npm install esprima
    
    npm install css-tree
    
    npm install cssbeautify
    
    npm install vm2
    
    npm install uglify-es
    
    npm install js-beautify

    安装好依赖之后,就是最后一步了,反编译 .wxapkg 文件,刚刚我已经把wx0a43b778b69841cd.wxapkg 文件放入了根目录。

    如果觉得以上很复杂,请使用自动化反编译工具:史上最简单的全自动微信小程序反编译工具-大师原创

    所以直接运行反编译命令:

    node wuWxapkg.js wx0a43b778b69841cd.wxapkg

    如果.wxapkg 文件在其他路径,则需要填写对应路径。

    例如在D盘则:

    node wuWxapkg.js  D:wx0a43b778b69841cd.wxapkg

    到这里就反编译成功了

    测试一下是否正常,我这边直接复制一个project.config.json文件,导入开发者工具

    我这边是有后端的,所以运行正常:

    最后说下

    其实反编译一般的小程序前端都是可以的反编译的,只是部分比较复杂。

    建议找没有后端的小程序反编译,因为有后端反编译了也没啥用,除非自己写后台或者使用别人接口。

    本教程仅限技术交流。


    ‍‍‍‍‍‍‍‍‍‍‍‍工具下载

    关注公众号:陆大湿   

    详细图文进入查看更多:如何进行反编译微信小程序详细教程-陆大湿源码

    最新版:

    特别说明

    本文由陆大湿整理自网络,如有侵权请联系客服删除!

    如需转载请注明出处:陆大湿

    唯一官网:bbs.ludeqi.com

    1、本站所有资源均来源于互联网,不保证100%完整、

    2、不提供任何技术支持;

    3、本站所发布的文章以及附件仅限用于学习和研究目的;不得将用于商业或者非法用途;否则由此产生的法律后果,本站概不负责!

    谢谢大家的理解!感恩~

    本篇文章来源于微信公众号: 陆大湿

    展开全文
  • .net的exe或dll等程序进行编译并生成源码文件
  • 微信小程序编译解包教程

    千次阅读 2021-07-19 06:09:31
    步骤一:获取小程序的.wxapkg包 (1)安装手机模拟器,比如说夜神、MuMu(https://mumu.163.com/360/) (2)下载和安装应用,微信和RE文件管理器 (3)开启root权限 (4)打开微信,搜索相对应的小程序,然后再打开RE文件...

    步骤一:获取小程序的.wxapkg包

    (1)安装手机模拟器,比如说夜神、MuMu(https://mumu.163.com/360/)

    (2)下载和安装应用,微信和RE文件管理器

    (3)开启root权限

    (4)打开微信,搜索相对应的小程序,然后再打开RE文件管理器,定位到目录:

    安卓:/data/data/com.tencent.mm/MicroMsg/【一个32位的16进制字符串名文件夹】/appbrand/pkg/

    苹果:/var/mobile/Containers/Data/Application/【不同微信号的值不同】/WechatPrivate/【32位字符串】/WeApp/LocalCache/release

    步骤二:使用反编译脚本还原代码

    (1)下载微信小程序反编译脚本,解包。

     git clone https://github.com/xuedingmiaojun/wxappUnpacker.git
    

     (2)解主包:./bingo.sh testpkg/_-1641294689_339.wxapkg

    (3) 解分包命令格式:./bingo.sh 分包.wxapkg -s=主包目录

    ./bingo.sh testpkg/_-1152625023_339.wxapkg -s=_-1641294689_339

     

     

    (4)合并分包文件夹内容,成功获取小程序前端源码。

    参考链接:

    https://www.cnblogs.com/yangda/p/12941806.html

    http://www.hunt007.com/wiki/78057.html

    http://www.hunt007.com/wiki/78057.html

    展开全文
  • 微信小程序编译

    千次阅读 2021-01-29 18:56:37
    微信小程序编译 准备 1、nodo.js运行环境 nodo.js用来运行 反编译脚本,可以在官网上下载http://nodejs.cn/download/,安装的过程一路next就可。 选好电脑的版本就行,得到的是一个msi后缀的文件,msi文件是...
  • 编译原理是介绍如何将高级语言程序变换成低级语言程序的方法。 其理论基础坚实,其形式化系统不仅用于编译程序,还大量用于人工智能、多媒体技术、数据库等领域。 程序设计语言 低级程序语言 特定的计算机系统所...
  • 翻译程序编译程序

    千次阅读 2020-08-03 13:13:41
    如果源语言是高级语言,如Pascal,C,C++,Ada,Java语言等,目标语言是是诸如汇编语言或者机器语言之类的低级语言,那么称这样的翻译程序编译程序,它所进行的转换工作如图 简单一点说就是,翻译程序就是将源语言写的...
  • java源程序编译命令是

    千次阅读 2021-03-01 09:32:09
    java 源程序可以是如下结构,该源程序命名为 HelloWorldApp.java: package javawork.helloworld; /*把编译生成的所有.class 文件放到包 javawork.helloworld 中*/......可接受class文件并启动Java虚拟机执行之;选项B...
  • 解释程序编译程序的区别

    万次阅读 多人点赞 2019-05-09 15:13:56
    1、什么是编译程序和解释程序 编译程序和解释程序程序执行的两种不同执行方式。 2、编译程序和解释程序的区别 编译程序编译程序的功能是把用高级语言书写的源程序翻译成与之等价的目标程序编译过程划分成...
  • 程序如何反编译

    千次阅读 2021-08-30 04:19:06
    环境安装 微信开发者工具 ... 只支持windows和mac ...xuedingmiaojun/wxappUnpacker: 小程序编译(支持分包) (github.com) 选择一个文件夹,通过如下命令安装 git clone https://github.com/xuedin.
  • 微信小程序编译

    千次阅读 2022-03-30 23:12:41
    变量值(你的安装目录)2、下载解包脚本:GitHub - xuedingmiaojun/wxappUnpacker: 小程序编译(支持分包) 解压 安装 npm install (npm是node工具自带的,设置完环境变量,直接使用,或者打开cmd拖node....
  • 微信小程序自定义编译模式

    千次阅读 2020-03-02 16:41:45
    在编辑其他页面的时候每次保存,调试的页面都会返回到index页面。 可以设置微信小程序编译模式设置解决。
  • 程序编译与链接

    千次阅读 2020-03-08 23:20:41
    程序编译与链接一,预处理二, 编译1,词法分析2,语法分析3,语义分析4,中间语言的生成5,目标代码生成和优化三,链接      在日常的应用程序开发过程中,我们很少需要关注软件的编译...
  • 错误,C语言采用编译方式将源程序转换为二进制的目标代码,编写好一个C程序到完成运行一般经过以下几个步骤,编辑和编译,就是将已经编辑好的源程序翻译成二进制的目标代码,经编译后的得到的二进制代码还不能直接...
  • apk反编译工具合集点击下载其实在刚开始接触Android时就已经学过这门反编译技巧,只是当时没去作这方面的总结,最近公司要我去开发的项目都是照抄别家公司的,其UI效果都是一模一样的。那么问题来了,不知大家有没有...
  • C#对程序进行编译修改

    千次阅读 2018-06-29 16:29:07
    编译源码 1:ReflectorInstaller 2:reflexil(是一个DLL插件) 下载完毕以后把DLL复制到ReflectorInstaller安装目录下的Addins目录下 然后打开Reflector.exe,点击Tools\AddIns\点击+号,选择刚才复制到目录的DLL,然后...
  • C语言篇——程序编译

    千次阅读 多人点赞 2021-11-26 21:11:53
    今天我来补一下C语言篇的程序编译的一篇文章,也算是有一个结尾了。 目录程序的翻译环境和执行环境编译和链接翻译环境编译的几个阶段预处理编译汇编链接运行环境 程序的翻译环境和执行环境 在ANSI C的任何一种...
  • 程序、目标程序、汇编程序编译程序、解释程序之间的关系 翻译程序是这样一种程序:它能把用甲种语言编写的程序翻译成在功能上与之等价的用乙种语言编写的程序。我们把甲种语言称为源语言,把乙种语言称为目标...
  • 【微信小程序】反编译

    千次阅读 2022-03-09 11:33:37
    下载wxappUnpacker ...找到小程序的 .wxapkg文件 复制到根目录 通过微信转发文件到电脑 创建新的文件夹 电脑 cmd 打开终端 进入对应的文件夹 node -v npm -v 全局安装依赖: npm install esprima
  • java程序编译后会产生什么

    千次阅读 2021-02-12 10:56:46
    什么是编译1、利用编译程序从源语言编写的源程序产生目标程序的过程。2、用编译程序产生目标程序的动作。 编译就是把高级语言变成计算机可以识别...主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现...
  • Go程序编译教程

    千次阅读 2021-08-21 17:22:53
    go语言作为一个c语言创始人发明的新兴语言,在区块链和游戏领域都身担重任,未来可期,未来go语言将会是主流,本文将介绍go语言的编译方式,具体可以查看官方文档 demo package main import "fmt" func main(){ fmt...
  • 程序less编译

    千次阅读 2018-09-10 13:36:38
    微信小程序只支持原生css写法,但是前端开发less和sass已经很普及。 网上有很多webstrom编译less的方法,个人觉得比较麻烦。...2、运行wxss-cli命令(miniProject为小程序目录),less文件保存时自动编译 wxss ./m...
  • 用机器语言编制程序效率低,可读性差,也难以理解修改和维护。因此,人民设计了汇编语言,用容易记忆的符号代替0,1序列,来表示机器指令中的操作码和操作数。但汇编语言是面向机器的语言,其书写格式在很大程度上取...
  • 要在计算机上执行用高级语言(或汇编语言)编写的程序,必须通过特定的途径来进行,也就是要通过翻译程序把用高级语言(或汇编语言)编写的程序翻译成为机器语言构成的程序,计算机才能执行。 在计算机上执行一个...
  • 微信小程序抓包反编译保姆级教程

    千次阅读 2021-01-25 22:51:19
    采集流程2.1 抓包2.1.1 使用工具2.1.2 具体抓包流程2.2 wxapkg包获取2.2.1 wxapkg包获取背景介绍2.2.2 使用工具2.2.3 具体获取包流程2.3 wxapkg包反编译2.3.1 反编译背景介绍2.3.2 使用工具2.3.3 具体反编译流程2.4 ...
  • 程序到可执行程序编译过程

    千次阅读 2019-09-19 22:49:47
    一份源代码,从开始产生到成为可执行程序的过程:预处理——编译——汇编——链接。 1、预处理 预处理又叫预编译,主要解释源文件中所有的预处理指令,包括头文件的展开和宏定义的替换,形成.i文件;具体细节...
  • 看了很多反编译、找回微信小程序源码很多教程,各种问题导致都没法正常使用。微信版本升级后,会遇到各种报错, 以及无法获取到wxss分包无法反编译的问题。于是寻找资料,也买过别人的破解工具,最终解决文件缺失和...
  • 编译原理——编译程序的组成

    千次阅读 2020-09-15 13:42:05
    编译原理概述

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,367,997
精华内容 947,198
关键字:

对程序进行编译