如何编写复杂的可执行文件?

时间:2013-03-26 16:24:31

标签: windows compiler-construction exe executable

投票反对这个问题显然很好,但请告诉我为什么这是愚蠢的或其他不受欢迎的,我只是想学习


我的目标是理解像Chrome这样的复杂程序。

据我所知,这些文件只需几行即可将文件提取到指定位置,编辑注册表或执行简单任务(如.bat文件)。

但是复杂的.exe文件如acrobat.exe或game.exe(如..... bioshock.exe)呢?


如果我错了,请纠正我:

我认为它的工作原理与将某些文件加载​​到ram和其他文件中相同。 它会存储所有可能的命令或指向某个地方(右键单击=选择/消防枪)

但是这些公司如何制作这些.exe?
可以/它们中的任何一个是用java编码的吗? 那么别人怎么能侵入他们改变一些事情呢?就像关于模拟城市离线模式的争议一样(虽然我不认为黑客是在.exe中)。最后我记得,你不能像存档那样打开.exe吗?

1 个答案:

答案 0 :(得分:2)

为您的问题撰写完整的答案非常困难。然而,lemme试图让你一瞥复杂“。exe's”是如何编写的。

假设你想写一个写字母的程序。您将首先为此开发一个名为Software requirement specification的东西。您需要为此执行一些requirement gathering

所以,你会开始记下来:
1.可以选择添加收件人。 2.有机会在信中添加文字。 3.有机制签署这封信。

依旧......

然后你将开始编码。

首先,您将通过编写符合您要求的代码开始。 (你的复杂的exe开始成型;耶!)

然后你可能需要重新考虑你的原始策略(除非你是专家)并重写一些代码..这个过程将继续迭代。

直到现在你将拥有一堆“源文件”:

  1. 一个java程序,它接受来自用户的一些文本。
  2. 使用POP发送电子邮件的java程序(电子信件:))
  3. 一个java程序,它使用openssl分配digital certificate来“签署”您的信件。
  4. 但现在你会发现你制作了3个有3个主程序的程序。但是你需要一气呵成!因此,您将删除主程序并编写一个“主类”来创建三个源文件的对象。您的主程序可能如下所示:

    AcceptText ap = new AcceptText("My letter content");
    Letter L = new Letter();
    L.addContent(ap);
    Signature S = new Signature();
    S.sign();
    L.addSignature(S);
    L.send();
    

    现在您将把它编译成可执行文件或可执行jar。你甚至想要使用swing或类似的东西为它添加一些GUI。

    因此,您已准备好第一个复杂的exe!运行它自己发送电子邮件! 现在,当你看到类似bioshock.exe的东西时,它们是由数千个源文件组成的,所有这些文件都整齐地放在一起。他们还添加了大量的艺术作品,动画,剪辑和声音。他们一点一点地制作了如此复杂的节目。没有秘密技术。您可以非常轻松地学习创建exe的基础知识。但是,要发展大规模的东西,需要极端的毅力和诚意。

    如果您真的感兴趣,请彻底学习2-3种编程语言。然后学习一些“框架”或库。这些可以像[opengl](http://en.wikipedia.org/wiki/OpenGL)这样的图形库。慢慢地但肯定地;你将学习如何自己制作一个复杂的exe。这需要时间和很多努力。快乐的编码!并欢迎来到俱乐部。