zoukankan      html  css  js  c++  java
  • 笔者的外挂生涯与总结

    笔者的外挂研究的心路历程,给想要研究外挂技术的菜鸡的忠告,我将自己研究外挂技术之路上遇到的一些问题多外挂技术的的看法总结了起来,看一看,可能对在路上的你有些帮助或启示。

    逆向这一块我也只是一个菜到掉渣的菜逼,写本文章没有别的意思,只是想给像我一样的自学者一点点指导和建议,分享本人的自学经历,也能让你少走一些弯路,不喜勿喷!!!

    为什么要去研究外挂技术 ?

    笔者家里是做生意的本身就需要电脑来记账,所以在很小的时候就接触了计算机,记得当时的计算机是黑白的大头显示器,系统则是 windows 98 所以我要比同龄人更早接触过,那时的我就会为了一些小问题而虚心向懂的人请教了。

    初中时就迷恋上了游戏,并且还是一个疯狂的游戏玩家,但玩游游总是被别人虐的体无完肤,玩不过别人,心里很不是滋味,那时的我,心里暗自在想既然游戏是做出来的,那么能否改变游戏的运行轨迹,这种想法在我心里留下了肯定的声音,从那时开始邪恶的种子就在心里生根发芽了。

    番外笑料:在玩某线游戏时,我听到的最多的一句话就是,对面的那个笑脸是G,对面赶紧T了他!末了,既然发现了我是G,那我就不藏着噎着了,狙击枪打幽灵,枪枪爆头,刀子打生化,僵尸被全部斩首,竞技场,别人用枪我用飞刀,同学赐名,野战屠夫!

    为了实现逆天的操作,于是就开始了我的外挂研究之路,先从编程开始研究,第一门接触的编程语言是易语言,易语言很好入门全中文编程,对于我这个初中学渣还是很友好的,当时大家都在忙着中考,我整天在忙着研究易语言,其实易语言真的非常好,是它让我走进了编程的大门。

    备注内容: 我并没有接受过正规的教育,或者说我是野路子出道,所谓的教程大纲,也都是自己在摸爬滚打中,一步步总结出来的,后面我会分享学习过程中总结出来的课程大纲,按照顺序学下来,可以节省你犯错的成本与时间,早日入门逆行领域,当然正规军会更好,你们有充分的资源可以被利用起来,你的导师,你的同学,学校的图书馆等,请一定要好好珍惜,多去问几个为什么吧!

    只会易语言肯定是不够的,为了能做出外挂来,我又开始自学C语言,啃汇编,啃底层,啃驱动保护,肯电路设计,由于都是自学加之没有任何人给与指导,都是摸着石头过河,所以学习进度很慢。有时候会遇到一些自己怎么都想不明白的事情,我都会尝试用自己已有的知识去推测和联想,尝试解释某些不懂得问题,现在来看,虽然有时候答案是完全错误和可笑的,但是思考的过程确是一种宝贵的财富。

    从下定决心研究开始,算下来断断续续啃了10年,中间经历了各种挫折,但都会自己摸索着找方向,每一次遇到困难,都会想尽办法解决掉,困难让我越挫越勇,只要想到外挂心中的欲望就会再次被点燃。

    功夫不负有心人,经过了十年的摸爬滚打,最后终于把游戏的驱动保护绕过了,外挂也做出来了,也玩嗨了也长大了,慢慢发现游戏变得没意思了,开挂玩游戏时,有时会感觉无辜的玩家很可怜,自己却像个屠夫,杀戮的快感却让人丧失了怜悯之心,根本停不下来,看着对手一个个倒下,心里很不是滋味但又不想停下,怕被反外挂系统和谐,所以得趁没被和谐前抓紧杀,多杀一个就是赚了,现在想想这种矛盾的心理真的是屠夫。

    长大了,我该何去何从 ?人生的方向在哪里 ?

    长大后,知道自己该干什么了,要找工作,要挣钱生存,回首以前的经历,学到的技术都是底层技术,也都是一些邪门歪道,加之Windows逆向行业本身就是冷门不好就业,于是乎去培训学习了Linux运维,之所以选择运维是因为该岗位不需要搬砖,并考了一些Linux网络认证,准备好好找工作干活挣钱去。

    总体来说,外挂虽然技术含量高,但是付出的努力与回报并不成正比,该行业除非你是逆向天才否则没什么出路,逆向这条路只会越走越窄,而逆向水平的高低则要看你的C语言编程功底以及对系统底层的理解到底有多深了,有时不如去学习JAVA开发,毕竟这方面就业还是很容易的,而外挂技术玩好了是生涯,玩不好有人给你送饭送水,还要带上漂亮的手镯,那里倒是各个都是人才,说话又好听,但是可能会把牢底坐穿!

    你做出外挂来以后在思考什么 ?

    有时候,你迫切的想要研究外挂,但你可以想象一下如果你现在就做到了,这些问题在你真正做出外挂来以后也会不由自主的思索,我学的这些东西能有什么用 ?除了黑产违法犯罪还有啥价值?我付出了这么多努力现在得到了啥?我图的是什么?仅仅只是为了游戏中的一时的快感吗?游戏也仅仅只是给闲人消遣的东西,当你面向社会走向工作岗位后,你会发现学的这些东西真的很没用。

    如果对计算机感兴趣,还是多把精力用在正道上吧,或许可以找一个不错的工作呢,现在我也在把这些邪门歪道的技术转换到正向上,比如系统漏洞挖掘、反病毒等,毕竟不想把这门手艺扔掉,那太可惜了,多年的逆向学习,已经让我形成习惯,是我不可分割的一部分,已经放不下了,但我并不希望新手花费很大的经历甚至是找师傅,研究外挂技术,这真的不是一个好的开始,也没有任何意义!!

    能否给逆向初学者一个合理的方向?

    如果你真的想要研究这门技术,我总结了学习逆向技术的比较好的几本书籍,按照顺序学下来的话,会对二进制安全有一定的认识,但你要明白,二进制安全虽然人才稀缺,但是就业面非常窄,很有可能你的付出会石沉大海不会有任何回报,你做好准备了吗?

    阶段一

    《易语言入门教程》 --> 外挂开发神器,基本上%70的外挂都是他开发的。
    《C语言程序设计 - 谭浩强》 --> 基础知识,必须掌握的基础。
    《C++语言程序设计 -- 谭浩强》 --> 基础知识,必须掌握的基础。
    《妙趣横生的算法 C语言实现》 --> 最好认真看,一定要动脑子思考,不能看书敲代码。
    《C和指针》,《C专家编程》,《C陷阱与缺陷》 --> 选学 <对指针的分析运用很到位>

    阶段二

    《汇编语言 -- 王爽》 --> 从16位汇编开始学习,掌握基本的汇编基础,为32位汇编打好基础。
    《微机原理与接口技术 -- 冯博琴》 --> 研究计算机底层硬件知识,理解微型计算机电路设计原理。
    《Intel汇编语言程序设计 -- 第五版》 --> 向纯32位汇编语言迈进,熟悉Intel对32位汇编的定义规范。
    《琢石成器—Win32汇编语言程序设计》 --> 研究 windows 32 位环境下的汇编语言程序设计,与上一本书略有不同。

    阶段三

    《Windows PE权威指南》 --> 理解windows 可执行文件格式PE与内存装载等技术。
    《WINDOWS 核心编程 -- 第五版》 --> 熟悉 Windows 环境下的常用 API 函数,要知道重要函数作用.
    《C++反汇编与逆向分析技术揭秘》 --> 理解 C/C++ 反汇编代码的差异,与编译器编译特性。
    《C++黑客编程揭秘与防范》 --> 研究并理解各种 Hook 挂钩,注入技术,等黑客技术。

    阶段四

    《加密与解密(第3版)》 --> 加深前面知识的理解,同时可以更好的系统复习二进制方面的知识点
    《IDA Pro代码破解揭秘》 --> IDC脚本编程讲解的较详细,可用于补充IDA Pro 权威指南脚本的不足。
    《IDA Pro 权威指南》 --> 学会使用IDA 业界顶级反汇编工具,分析反汇编代码。
    《恶意代码分析实战》 --> 开始实战,从小病毒开始分析,运用前面的知识快速适应。

    阶段五

    《Windows驱动开发技术详解》 --> 推荐配合寒江独钓一起看,这两本书相似点很多,但各有优势。
    《寒江独钓 Windows内核安全编程》 --> 研究C语言驱动编程,后期编写绕过游戏驱动保护工具。


    其实将上面这些书籍全部认真学下来,你只是学会了逆向的皮毛,或者说只能算是入门了并不能让你成为大佬,市面上很多游戏你都无法分析出其到底是如何实现的,这与自己的游戏开发水平有很大的关系,甚至说有些网游,你甚至无法过掉它的驱动保护,也就更谈不上附加分析汇编代码了。

    关于网友们的问题的,解答记录

    1. 有些人私信我,说无法深入研究游戏逆向技术,这里我想发表一下自己对游戏逆向的看法

    想要深入分析游戏到底是如何实现的,具体到对每一句反汇编代码的完整还原,是不现实也是不可能实现的,面对一个几个G甚至几十G的游戏来说,这一项任务显得非常的艰巨,即使在逆向专家的眼中,逆向分析出游戏的大部分细节也是一个很大的挑战,有时逆向一款游戏倒不如重新开发来的容易,更何况像我这样的菜鸟。

    1. 其实有些人在逆向时没有思路,这太正常了,因为你可能都不明白游戏到底是如何实现的这个功能。

    逆向分析的功底 ,是开发决定的!如果你是一位优秀的大型游戏开发人员,或是游戏架构师,并且深入理解了逆向技术,那么我想很多问题都是水到渠成的,当你去逆向其他游戏的时候,甚至说你都不需要逆向,因为你心里早就已经浮现出了该功能是如何实现的各种细节,对于他们来说逆向只是时间问题,开发水平真的决定了逆向能走多远,虽然他们之间看似没有太大的关联。

    1. 关于游戏中驱动保护的绕过问题?

    每一款游戏所使用的保护方式都不相同,每一款大型游戏的背后都是一个非常强大的安全团队在把控,我们很难以个人的力量与整个安全团队相对抗,纵使你可以暂时过掉游戏保护,但那也仅仅只是一时,毕竟能研究得起驱动保护的都不是一般的公司,同时随着当今法律的逐步完善健全,如果你出格很可能招来官司面临牢狱之灾,那些所谓培训外挂技术的人,本质上也算是帮凶了,所以这个问题我想我不需要在回答了!

    1. 有些人说为什么不拿网络游戏讲解?

    首先游戏的逆向分析思路大同小异,如果能够学会分析的思路,那么该思路是通用的,可以逆向大部分游戏了,如果拿网络游戏开刀,第一需要过保护,第二也没有哪个人敢这么嚣张,肆无忌惮,我也不想去蹬缝纫机,我还年轻,只能点到为止。


    最后引用《0day安全_软件漏洞分析技术》中一段话。

    这个行业属于有兴趣,够执着的人,属于每一个为了梦想能够不懈努力的意志坚定者!

    你可以专注于研究技术,但请不要研究黑产,不要触碰法律的红线,好好工作,好好生活!

  • 相关阅读:
    Python中append和extend的区别
    python学习 day19
    python学习 day18
    QT下编写使用for循环动态添加刻选择时间类型的按钮(记录一下)
    QT mingw编译器下使用snap7库与西门子200smart-PLC(网口)通信实现代码
    看着挺胖的大胖猫
    QT添加软键盘后,QDialog设置模态后软键盘没响应解决办法
    QT程序打包在别的电脑上运行提示“api-ms-win-crt-runtime-|1-1-0.dll"可能与您正在运行的Window版本不兼容。。。。。
    Qt使用WM_COPYDATA消息进行进程通信
    离线百度地图,QT添加按钮点击切换卫星地图和街道地图
  • 原文地址:https://www.cnblogs.com/LyShark/p/12689540.html
Copyright © 2011-2022 走看看