首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

让vc编译出的程序减小体积

主要是编译器加入了很多没必要的代码(这里是对我们而言,不过有些代码还是有利于安全的).好了我们就手动改下编译器的参数来看看能到多大!...二,设置自己的入口点函数 C或C++程序默认的入口函数是main()或WinMain(),但我们现在不用什么Main,WinMain.因为这些都不是直接的入口点,编译器在产生exe文件的时候,将为我们生成真正的入口点...(分类)"下拉列表中选"output",在" Entry-Point symbol(输入项-点符号)"中输入我们刚才定义的入口函数(MyFun),在源程序中也要做相应修改,然后再编译.现在是16k了:)...的默认入口点WinMain和console的默认入口点main,都会引入 #pragma comment(linker, "/ENTRY:main") //int WinMain(HINSTANCE current...错误报告”文件 /codepage: 指定打开源文件时要使用的代码页 /utf8output UTF-8 编码的输出编译器消息 /main: 指定包含入口点的类型(忽略所有其他可能的入口点

2.1K10

Proguard 常用规则

为了决定哪些代码要被保留哪些代码要出丢弃和混淆,必须指定入口点。这些入口点通常是 main方法,activity,service等。...可选的过滤器是一个正则表达式; ProGuard不打印关于具有匹配名称的类的警告。忽略警告可能是危险的。 例如,如果处理确实需要未解决的类或类成员,则处理后的代码将无法正常工作。...只有在你知道自己在做什么的情况下才使用此选项! -ignorewarnings 指定打印任何关于未解决的引用和其他重要问题的警告,但在任何情况下都继续处理,忽略警告。 忽略警告可能是危险的。...allowshrinking 指定-keep选项中指定的入口点可能会压缩,即使必须另外保留它们。 也就是说,可以在压缩步骤中删除入口点,但如果它们是必需的,则它们可能未被优化或混淆。...如果指定了一个方法,则ProGuard仅将该方法作为入口点进行保存。其代码可能仍会进行优化和调整。 类规范 类规范是类和类成员(字段和方法)的模板。

1.8K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    .NET 高级调试:CLR和Windows加载器及应用程序域

    对于 Net 的 PE 文件,有几点需要注意: AddressOfEntryPoint 程序的入口点相对偏移地址,即(exe+AddressOfEntryPoint)。...EntryPointToken 这个标签的地址,就是我们程序 Program.Main 方法的入口点地址。 IL 代码里面也是有标记的。 2.2、小知识 Windbg 有一个伪寄存器命令 ?...$exentry,可以直接告诉我们 exe 程序的入口点地址。 3、应用程序域 3.1、简介 对于 Windows 上的应用程序,大家都知道是按照【进程】进行隔离的。...,还不是我们的 Program.Main的地址,00ca0000(Example_2_1_1进程起始地址),00002782 是 PE 头告诉的入口点地址,我们通过 U 命令,可以查看汇编代码。...$exentry 查看入口点。 0:000> ?

    42120

    csc命令帮助

    :将指定的资源链接到此程序集中 (缩写: /linkres)                         - 代码生成 - /debug[+|-]             发出调试信息.../debug:{full|pdbonly}   指定调试类型(“full”是默认类型,可以将调试程序 附加到正 在运行的程序) /optimize[+|-]          启用优化 (缩写...(缩写: /res) /linkresource:将指定的资源链接到此程序集中 (缩写: /linkres)                         - 代码生成 - /...debug[+|-]             发出调试信息 /debug:{full|pdbonly}   指定调试类型(“full”是默认类型,可以将调试程序 附加到正 在运行的程序) /optimize...-8 编码的输出编译器消息 /main:            指定包含入口点的类型(忽略所有其他可能的入口点) (缩写: /m) /fullpaths              编译器生成完全限定路径

    1.2K20

    WinForm程序启动控制台窗口Console

    或许我使用的方法与其不同,不过你可以试一试,写出我们自己的调试日志代码。 首先要解决的问题是如何在Debug模式时显示Console窗口。我确定,这是一个WinForm项目,也没有改过它的输出类型。...我们需要在项目的入口点使用一些API函数将控制台显示出来: 它们是 AllocConsole 和 FreeConsole。...我是这样做的,根据输出到控制台的文本的前几个字判断为“警告”、“错误”、“注意”时,输出带有黄色、红色、绿色的文字,其他输出信息输出控制台缺省的灰色文字,以起到区分效果,还要在每条信息前加上输出信息的当时时间...if (output.StartsWith("注意")) return ConsoleColor.Green;   return ConsoleColor.Gray;       }   }   那么程序入口函数...Main代码如下: [c-sharp] view plaincopy ///    /// 应用程序的主入口点。

    2.5K12

    小程序项目结构与组件基础

    项目结构 了解项目的基本组成结构 pages 用来存放所有小程序的页面 utils 用来存放工具性质的模块(例如:格式化时间的自定义模块) app.js 小程序项目的入口文件 app.json 小程序项目的全局配置文件....json配置文件 全局配置文件app.json app.json是当前小程序的全局配置 ,包括了小程序的所有页面路径 、窗口外观、界面表现 、底部 tab 等。...(终端黄色警告)是默认开启的,如需要关闭 sitemap 的索引提示,可在小程序项目配置文件 project.config.json 的 setting 中配置字段 checkSiteMap 为 false...小程序中的JS文件分为三大类,分别是: app.js 是整个小程序项目的入口文件,通过调用App()函数来启动整个小程序 页面的.js 文件 是页面的入口文件,通过调用Page()函数来创建并运行页面...运行机制 小程序启动的过程 把小程序的代码包下载到本地 解析 app.json 全局配置文件 执行 app.js 小程序入口文件, 调用 App() 创建小程序实例 渲染小程序首页 小程序启动完成 页面渲染的过程

    41220

    第四十八期:webpack的四个小技巧

    概念 按照我们平常的理解,webpack就是一个前端打包工具,术语叫javascript应用程序的静态资源模块打包器。 有了这个概念以后,我们就可以接着去思考下一个问题,既然它是一个静态资源打包器。...代码分割的使用场景是:假如我们不使用代码分割code spliting,很可能出现的一种情况是我们所有的代码最终都打包到一个bundle中,如果这个文件过大,那么必然会影响我们的程序的加载时间,进而影响体验...日常配置代码分割的方法有三种:1. 配置多个入口。2.使用CommonsChunkPlugin插件。3.动态导入。...,当一个模块或者遍历,或者是我们引入的别的包需要做多个地方引用时,我们可以借助这技术点,将其转变为全局变量,当然,这个技术点的实现需要借助ProvidePlugin插件。...source Map的使用场景是用于追踪代码中的错误和警告。通常通过devtool属性进行配置,这个属性用于控制是否生成,以及如何生成source Map。

    34220

    【编程基础】Java初学者需要了解的10个语法细节

    所有Java程序的入口是public static void main(String [] arg0)方法,所以看程序一般都是从main方法看起; 7、注意分行。...注释就是辅助说明你的程序,方便阅读,注释的部分会被Java编译器忽略掉。....*/), /** * 程序的入口方法。...空行会被编译器忽略,用空行多是为了让程序整洁易读。 ? 总结:写代码重要的是整洁、易读,让自己和别人都看得懂很重要。这里可能有人会说我自己写的代码我还不知道,如果你这样认为那你肯定没有写过多少代码。...在工作中有的时候你是做很多项目,做完一个再做一个之后让你回头改第一个项目的bug这个时候如果你的代码写的不整洁也没有添加注释的话你有你受的,这也是给写程序的人们一个建议。

    80441

    动态链接的步骤与实现

    :它定义了一个规则,那就是当一个符号需要被加入全局符号表时,如果相同的符号名已经存在,则后加入的符号被忽略从动态链接器的装载顺序可以看到,它是按照广度优先的顺序进行装载的,首先是main,然后是b1.so...由于存在这种重名符号被直接忽略的问题,当程序使用大量共享对象时应该非常小心符号的重名问题,如果两个符号重名又执行不同的功能,那么程序运行时可能会将所有该符号名的引用解析到第-个被加入全局符号表的使用该符号名的符号...内核在装载完ELF可执行文件以后就返回到用户空间,将控制权交给程序的入口。对于不同链接形式的ELF可执行文件,这个程序的入口是有区别的。...Linux的ELF动态链接器是Glbc的一部分,它的源代码位于Glibc的源代码的elf目录下面,它的实际入口地址位于 sysdeps/i386/d1-manchine.h中的__start(普通程序的入口地址...这一点可以使用ldd来判断: $ ldd /lib/ld-linux so 2 statically linked 动态链接器本身必须是PC的吗?

    1.4K20

    C#基本语法

    C#不像C++一样,有用于输入输出的关键字cin和cout,而是依赖于.NET类。最基本的类是System,这个类几乎所有的C#程序都要用到。...C#从一开始设计就是完全面向对象的,这一点和C++是不同的,因此一段C#代码都必须包含在一个类之中。 所有的C#代码的入口函数都是从下面这段代码开始的。...//当你把返回值声明为int的时候,才能返回一个数值 } //但是这个返回值只能是void或者int。 需要注意的是C#的入口函数的Main的M是大写的。...C#中的所有变量在定义的时候都需要初始化,否则会出现语法错误,而不是像C/C++一样,只会产生一个警告。因此,我们说C#的安全性很高。这样能防止程序使用未初始化的垃圾值。...我们在使用C#的string引用类型的时候,感觉其操作和值类型是一致的,这是因为C#重载了运算符,并不是说string是一个值类型。

    80510

    【小程序项目开发 --- 京东商城】 启航篇之uni-app项目搭建

    ,生命周期函数等(在小程序中相当于把app.js分成了两个文件,关于app的配置,如生命周期等都在app.vue,其他则在main.js main.js – uni-app的入口文件 manifest...接下来就可以开始我们的项目了(注:在编辑器敲代码,不能再小程序开发工具敲代码) 发现的很不错的关于原生小程序的uni-app的区别的文章,建议可以先看看 七、git管理 注:需要安装git文件,安装配置以及入门掌握见...小程序开发工具加载的项目就是dist 但是在git管理中,unpackeage的dist我们是不想跟踪的,但是unpackage我们是要跟踪的,此时unpackage只有一个dist文件,dist文件被忽略那么...创建仓库 git init 查看当前文件状态 git status 可以看到全部文件都没有加载到缓存区(红色警告) 加载到缓存区(.是通配符,全部添加) git add ....✨谢谢你的阅读,您的点赞和收藏就是我创造的最大动力!✨

    1.1K50

    Swift3项目升级到Swift5

    最新的Xcode11.4 已经不能运行曾经Swift3.x的代码了。 我本想用Swift5重写一遍、后来感觉重写工作量有点大,业余精力有限所以直接在原基础上升级改造。 ?...11.4升到 Swift5.x 修改项目源码 Xcode 10.1中【edit】-【Convert】-【to Current Swift Syntax】 这里只转换自己的源码 , 忽略我们引入的Pod...例如,编译器会为NSObject子类的所有方法创建Objective-C入口点。 该机制称为@objc推断(@obj Inference)。...在Swift 4中,这种自动@objc推断已被废弃,因为生成所有这些Objective-C入口点有代价。 当“Swift 3 @objc Inference”设置为“On”时,它允许旧代码运行。...但是,它会提示这些需要解决的弃用警告,建议“修复”这些警告,并将设置切换到“Default”。新的Swift项目的默认为“Default”。

    1.2K10

    使用C#简单制作一个看门狗程序

    摘要 在有些特殊项目中,软件可能是无人值守的,如果程序莫名其妙挂了或者进程被干掉了等等,这时开发一个看门狗程序是非常有必要的,它就像一只打不死的小强,只要程序非正常退出,它就能立即再次将被看护的程序启动起来...NotifyIcon icon = new NotifyIcon(); private static Dog dog = new Dog(); /// /// 应用程序的主入口点...(你可以试下效果) Arguments参数是被看护程序的完整路径,因为一般情况下,是由被看护程序启动看护程序,所以我们可以直接使用Process.GetCurrentProcess().MainModule.FileName...获取到被看护程序的完整路径 5、在主程序入口点启动看门狗 public partial class App : Application { [STAThread] static void...,根据项目实际情况灵活处理即可 最后在需要正常退出程序的地方(也就是主程序关闭按钮或其它想要正常退出程序的地方)停止看门狗程序 效果 源代码 https://github.com/luchong0813

    88820

    使用 pipx 安装并执行 Python 应用程序 (1)

    它们通常是像 Requests 或 Polars 这样的库,提供可复用的代码片段来解决常见问题。也可能是像 FastAPI 或 PyGame 这样的框架,你基于它们构建应用程序。...也可能是像 bpython 或主要用 TypeScript 编写的 JupyterLab 环境这样的完整应用程序。 混合型:它们同时提供导入代码和可执行脚本。...一旦你找到了一个带有入口点的 Python 包,并且想要使用它,最佳做法是先创建并激活一个专门的虚拟环境。...当你下次再次运行同一应用程序时,pipx 会尝试使用已缓存的环境,而不是重新下载包。 这里,包名和它的入口点名称是一致的。但如果入口点名称不同,或者一个 Python 包有多个入口点怎么办呢?...✨ ✨ 安装了 mypy 之后,通过 pipx,你的终端现在可以访问这个包提供的五个全局命令。 另一方面,有些 Python 包则完全没有定义任何入口点。

    8700

    通过DedeCMS学习php代码审计

    ,至少要知道程序的入口文件是什么流程,程序有多少入口文件,对外部数据有什么全局处理方式等等 对dedecms对全局分析时,首先选择了根目录下的index.php,慢慢分析会发现,dedecms是一个多入口文件的形式...通过全局分析得知dedecms大致有3个主要功能,也通过不同的入口文件进入 1)网站前台首页,没有什么功能点 2)会员中心,默认是关闭该功能的,需要后台打开 3)管理员后台 跟踪前台index.php的流程.../model.class.php'); common.inc.php 做了很多程序的初始化工作,代码审计时需要重点关注程序处理GPC这些外部数据的方式 common.inc.php 全局处理数据的代码:...; xss 测试发现还是黑盒好测一点,在dedecms后台还是存在很多xss的,本次是在黑盒测试后,在回头审计代码的问题,其实这样白盒审计意义不大,主要记录下思路 因为dedecms是多入口文件,每个入口文件都需要包含具有全局过滤函数的文件来判断外部数据的安全...最后梳理一下流程,流程图如下: 0x03 小结 本次主要采用的是功能定向审计,发现这种方式对文件上传漏洞的审计效果还不错,该方式确实速度很快,不过也会忽略很多关键点,最后的感受是,代码审计时不一定只有一种审计方式

    21.7K30
    领券