25 万行逆向源码遭 GitHub 下架!

两款R星经典游戏《GTA3》和《GTA:罪恶都市》被成功逆向工程,近25万行代码可在多个系统上运行。项目虽受欢迎,但因版权问题被下架。

来源:优快云(ID:优快云news)

整理 | 郑丽媛 

近日,听闻有人将《GTA3》和《GTA:罪恶都市》这两款 R 星经典游戏成功逆向工程,并发布到 GitHub。目前,这 25 万行逆向源码已被下架。

成功逆向近 25 万行代码

首先解释一下 “逆向工程” 的意思:一种产品设计技术再现过程,即对一项目标产品进行逆向分析及研究,演绎并得出此产品的处理流程、组织结构、功能特性及技术规格等设计要素,从而制作出功能相却不完全一样的产品。

那么对于游戏来说,逆向工程意味着什么呢?答:游戏代码将易被重写、优化并移植到许多系统。GTAmodding 在 GitHub 上发布的《GTA3》和《GTA:罪恶都市》这两款游戏的逆向源代码就是如此。

经 GTAmodding 解释,GTA 的逆向工程起始于 2018 年初,起初并非要逆向工程整个游戏,仅是用于测试游戏的反向碰撞和物理代码。之后通过他的不懈坚持与中途加入的 RE3 的多位志同道合之人,最终完成这个项目,成功逆向了近 25 万行代码。

项目完成后,GTAmodding 对这两款游戏的逆向源代码进行了测试,结果很顺利:在 Windows、 Linux、FreeBSD、x86、AMD64、ARM 和 ARM64 这些系统上均可以正常工作。

因此,GTAmodding 在 GitHub 上发布了这两款游戏的逆向源代码以供游戏改进,就像对《GTA3》可以修复各种 BUG、增强车辆渲染等。此外,还可以通过移植这个项目,实现在任天堂 Switch、PS Vita 和任天堂 Wii u 上这 3 个平台畅玩这两款游戏(注:任天堂 Switch 自发售至今, 平台上没有一款 GTA 系列的作品)。

收到 DMCA 删除通知,该项目已被下架

可就是这个满足了众多渴望在 Switch 上玩 GTA 系列游戏玩家的项目,目前在 GitHub 上却被下架,原因是收到了 DMCA 的删除通知。

根据 GitHub 一贯的透明政策,当代码仓库应版权所有者的要求进行移除时,都会公开对方发来的 DMCA 删除通知,这次也不例外。

从通知中可以看出,本次是 R 星游戏的母公司 Take-Two Interactive Software, Inc. 向 GitHub 发去的 DMCA 删除通知。通知中表示,包括 GTAmodding 发布的 re3 存储库及众多分支的内容均涉嫌侵权,并且 R 星从未对其进行开源许可。

对这件事,你有什么看法吗?欢迎评论区留言~

参考链接:

http://www.gzmjhzs.com/news/2228352038.html

https://github.com/github/dmca/blob/master/2021/02/2021-02-19-take-two.md


推荐阅读:
入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |
趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影

年度爆款文案

点这里,直达菜鸟学PythonB站!!
逆向工程(又名反向工程,Reverse Engineering-RE)是对产品设计过程的一种描述。 通俗解释: 对于软件项目的逆向工程就如同盖楼一样,一栋大楼摆在面前,在不知道大楼图纸(图纸其实就是程序的架构)的前提下,仿照现有的大楼结构(发布好的项目结构)盖出相同的大楼。 1、在eclipse中建立maven项目(单击链接查看教程) 2、打开建立的该项目所在文件夹:项目右击->Properties 3、找到该文件夹所在位置,并找到src目录 4、还原webapp文件夹(前台页面内容)中的内容:将放在服务器tomcat中的webapps文件夹下的.war文件拷贝出来解压将解压的内容放到原webapp文件夹中 5、还原resources文件夹(配置文件信息)中的内容:依然在解压的.war文件中找:WEB-INF->classes中的内容(除了com该文件,这个文件其实是本项目命名的存放java类的文件;其它项目有可能不同) 6、还原java文件夹(项目中的类包)内容:将5中的com文件夹中的内容直接打开任意一个最下面的子文件,将其拖到我们之前下载好的反编译软件中 7、通过eclipse重新加载该项目,将反编译出来的每一个类按照相应的结构、命名在原项目中建立 8、引入相关的jar包:jar包文件在解压的.war文件中:WEB-INF->lib文件夹下;项目右击->build path->Configure build path->Libraries->Add External JARs.. 选择jar包所在的文件也就是上面的lib文件夹位置 9、更新项目,并在eclipse中添加tomcat(点击链接查看教程) 10、解决项目中的问题,小编遇到的最多的问题是因为继承关系用到了泛型,所以在反编译的时候丢失了List或者set返回值类型,找到错误上面定义的地方,将对应的类型添加到上面就ok了! 11、appserver端代码搭建的时候,用到了hadoop技术,可能编译的时候会出现本地没有hadoop的错误(单击链接查看解决方法) 注:反编译完成之后,在测试功能的时候,发现导出excel中的逻辑有所错误,这方面还没有搞懂是当时人为问题还是反编译过程中的问题,不过最后跟了代码也解决了! 【总结】 以上是小编在研究完成之后属于教程性的东西,将其中小编实践以及思考的部分过程省略了。 活儿干完之后,得到经理和领导的大大赞扬是少不了的,另外吃肉也是少不了的。 但是更多的是,小编在解决这个大问题的时候的思考过程,其中困难部分: 1、研究生成war包之后,对应的文件的结构 2、研究java类的打包形式,对应的jar包的存放位置 3、对于该项目框架的梳理过程 4、整合过程,对于每一步操作细心的要求 5、整合完成,解决编译报错的过程 虽然活儿干完了,项目也跑了起来,但是对于里面的技术点自己还是得深入到代码中去研究,去感受,还有其中业务逻辑的梳理,以及设计思想的升华都需要去了解去学习。 只要相信自己,并付出与行动,终究会取得胜利的桂冠,加油O(∩_∩)O~
<think>好的,我需要帮助用户找到Linux内核源码GitHub仓库。首先,我得确认用户的需求,他们可能是在寻找官方的镜像或者主仓库。 根据引用[3],Git是由Linus Torvalds创建的,最初用于Linux内核开发。因此,Linux内核的官方仓库应该由Linus维护。不过我记得Linux内核的官方仓库不在GitHub上,而是在kernel.org。不过GitHub上可能有镜像仓库。 用户提到的引用[4]提到了在Linux内核开发中使用Git管理多个分支和问题,所以可能需要指导用户如何通过Git访问源码。另外,引用[1]中提到了下载和解压内核源码的步骤,但用户现在想通过GitHub获取,可能需要调整方法。 接下来,我需要确认GitHub上的Linux内核仓库是否正确。搜索一下,Linux内核在GitHub的官方镜像仓库是https://github.com/torvalds/linux,由Linus Torvalds维护。这个仓库是只读的镜像,实际的开发流程还是通过邮件列表和kernel.org进行。 因此,回答应该包括这个GitHub链接,并说明它是镜像仓库。同时,可以建议用户如何克隆仓库,以及如何查看不同版本的分支。另外,引用[3]提到Git的基础知识,可能需要指导用户使用git clone命令。 还要注意用户可能遇到的问题,比如仓库的大小,下载时间较长,或者如何切换到特定版本。根据引用[4],用户关心代码管理和搜索效率,可以建议他们使用tags或分支来缩小范围,避免处理整个代码库。 最后,生成相关问题时要围绕Linux内核源码的获取、Git使用、版本管理等方面,帮助用户进一步探索。</think>### Linux内核源码GitHub仓库指引 Linux内核的官方Git仓库确实存在于GitHub,但需注意这是**只读镜像仓库**,实际开发仍通过kernel.org进行管理。以下是具体操作步骤: 1. **访问官方镜像仓库** 仓库地址:https://github.com/torvalds/linux (由Linus Torvalds本人维护,每日自动同步kernel.org的更新)[^3] 2. **克隆仓库到本地** ```bash git clone https://github.com/torvalds/linux.git ``` 注意:完整仓库大小约3GB,建议使用稳定网络环境 3. **分支管理技巧** 查看所有版本分支: ```bash git branch -a | grep v[版本号] ``` 例如切换至6.5版本: ```bash git checkout v6.5 ``` 4. **高效代码检索建议** 对于驱动开发者,可仅索引特定子系统: ```bash # 示例:仅处理drivers/usb目录 find drivers/usb -name '*.[ch]' > cscope.files cscope -bkq -i cscope.files ``` 该方法可显著减少索引规模(相比全量索引2700万行代码,子目录索引通常只需数万行)[^4]
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值