V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
CCCCCCCCCCCCCCCC
V2EX  ›  程序员

[致曾经仅仅是正向开发程序员的我]

  •  
  •   CCCCCCCCCCCCCCCC · 2023-11-22 20:28:10 +08:00 · 1491 次点击
    这是一个创建于 365 天前的主题,其中的信息可能已经有所发展或是发生改变。
    你是否在长期写 UI 代码中变得越来越菜?你是否在大量的业务代码碾压中变得越来越虚?你是否在临近换工作面试的时候才发现自己原来基础这么脆弱?如果你的答案是肯定的,你可能会自觉已经失去了竞争力,你可能会自觉已经面临着职业危机。

    你可能会说,你平时有在刷 lee code ,有在写文章,有在突击 C 语言或者 C++,但是这些真的能让你掌握计算机运行原理吗?你是否知道为什么会有作用域,作用域外面怎样访问里面的数据,为什么可以访问,等等?你是否能够从汇编层面分析你的代码是如何被执行的,你的数据是如何被存储的,你的系统是如何被调用的,等等?

    这些问题其实都可以通过逆向开发的学习来解答。逆向开发是一种从已有的程序或者数据中还原出其原始设计或者逻辑的技术,它可以让你深入了解计算机的运作机制,从而提高你的编程能力和水平。逆向开发可以做很多事情,比如破解软件,修改游戏,分析协议,甚至创造新的应用。这也许是正向开发一直不会接触到的领域,只有切身经历可能才会有所体会。

    我目前是做游戏逆向的,单干比较多,基本上一睁眼就是看各种汇编,这种类似的生活我已经经历了几年以上。在我学习完逆向领域的基础以后,我发现其实我以前学程序都偏向于死记硬背,而不是真正理解计算机的本质。现在我可以说我对计算机运行原理有了一定的了解,虽然不能说精通,但是应算得上略懂,因为平时调试比较多,而且还是别人的应用。我很庆幸我之前有痴迷在逆向,它让我成为了一个更好的程序员。

    如果你也想开始学习逆向,我要提醒你,这并不是一件容易的事情。如果你没有扎实的计算机基础,想要上手去捣鼓逆向,并且能达到遇到任何问题都能想到方向,而不是只会使用工具的工具 boy ,最起码要 2 年以上的专心学习。但是我还是建议正向开发的程序员稍微了解一下逆向,你就会发现其实面试问的八股文,也不过如此,共勉,加油。
    7 条回复    2023-11-23 17:51:50 +08:00
    wukongkong
        1
    wukongkong  
       364 天前 via Android   ❤️ 1
    有什么入门资料吗
    CCCCCCCCCCCCCCCC
        2
    CCCCCCCCCCCCCCCC  
    OP
       364 天前   ❤️ 2
    @wukongkong 目前市面上的大部分 C++或者 C 语言的教程,甚至是培训机构的教程,不适用于逆向底层基础搭建,他们可能会跟你解析编译后的或者展开后的代码,但是那也不是最真实的状态,还是让你背而不是理解,我大概可以列一些需要关注的重点,如果多人想要的话,我晚点整理一下。
    8153
        3
    8153  
       364 天前
    这个不太认同,逆向没有好的工具,更逆不了。手改二进制?
    ShaoLongFei
        4
    ShaoLongFei  
       364 天前
    一直想学,但是感觉好难啊
    listenerri
        5
    listenerri  
       364 天前
    @CCCCCCCCCCCCCCCC #2 入门资料 +1
    inwell
        6
    inwell  
       364 天前
    入门资料 +1
    SixGodHave7
        7
    SixGodHave7  
       364 天前
    结果就是发资料的吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1284 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:54 · PVG 01:54 · LAX 09:54 · JFK 12:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.