从开源时代进入到逆向时代
生命不熄,奋斗不止!
记得十年前决定开发操作系统和编译器的时候,我已经解接触了开源软件,但是接触开源代码还是后来的事。
开源软件产生是为了反对微软垄断和高收费,让人们用上免费软件,今天已经大功告成!进入2013年,我发现开源社区的激情似乎已经慢慢消失,推出的新的各种开源项目计划似乎已经越来越不行了,至少我在nix下面看到,gnome3,kde4.10已经不行了,漏洞百出,不堪使用。我也在今年发布了汉澳sinox2013server和sepl编译器和sepldevelop,但我也不焦急去推广它们,因为我觉得开源时代已经慢慢过去了,人类进入了逆向时代!至少对cracker来说是这样。
我并不是一个职业程序员,但我绝对是一个专业程序员,我在小公司跳来跳去,甚至还有自己单干,我自己单干的时间比上班还多。为什么单干还能活下来?就是去做一些程序员杂活,赚点钱。但是真正赚钱的是因为我成了逆向人员,其实就是代码破解黑客。
我当时去开发编译器时候知道要用汇编才能编译程序成可执行程序。不过汇编是比较可怕的事情,我大学考了3次汇编才及格,当然我不愿意作弊,我曾经考试作弊得了好分数,还得奖学金,我觉得非常可耻。不过大学不堪回首的事情我就不说了。但是编译器还是要写的,汇编还是要学的。学了一下觉得没动力了,似乎进展不大,看到网上有人找搞破解招人的,我就决定去他们那里边破解边学汇编。去那里做了不久,还是写程序的,觉得没有前途,改去一家公司上班,搞了一段时间又觉得去搞破解更有前途,后来终于会做调试分析了,还能写程序。不久我出来自己分析破解写一个程序卖给工作室,结果赚了钱,收入好高啊,还买了房子,不知房奴滋味。正如唐骏所说的,第11年一下赚回10年的钱。
破解与反破解,调试与反调试的斗争更加激励了。但是作为跟机器码打交道的代码调试员,幸运之手垂青,不再是苦逼程序猿,也许也不是每个黑客都那么幸运。从2003《加密与解密》发布,中国破解程序员越来越多,现在10年过去了,已经拥有数万奋斗在机器语言一线的代码挖掘黑客。黑客分成两种,网络破解黑客和程序代码破解黑客。我不是网络破解黑客,我没兴趣,我觉得他们入侵不会写程序,是工具客。我喜欢代码挖掘,在黑暗的机器语言世界里摸黑游走,找到入口和破绽。一旦找到代码,我会非常兴奋,没日没月挖掘的结果竟然这么简单,仅仅就是一个jump或者call。有时也赞叹程序算法设计之精彩,之前也未曾见过。代码挖掘者是孤独行者,置身在二进制世界里,只看到cpu,寄存器窗口,堆栈窗口,内存区,当前地址数据区,目不转睛,一对眼睛要同时看5个地方,只能慢点按 F8进入下一个机器码,实在搞不懂才按 F7进入下层函数,或者 CTRL+F9跳到上层函数。01二进制世界好黑啊,我们把它叫密界,秘密的世界。一般程序员看不到。一个程序员要成为调试黑客高手要用3到5年才成熟,因此没有公司能培养黑客,黑客要成长,可能有师傅指点,但必须自学成才。
金钱利益推动黑客程序员和黑客产业发展,如果没有金钱驱使,谁会去做黑客,尤其是专业程序员,引导他们的不只是兴趣。我当初学习汇编设计编译器,但是因为觉得破解有钱途我才会加入他们。黑客学习初期起早摸黑,经常熬夜,要看看你的身体能否扛得住。顶不住就做不下去了。黑客成长是痛苦的,幸运的是我是有运气的黑客,早期加入黑客公司为他们效力成长起来。现在黑客公司似乎少了。
因为软件保护太厉害了,甚至出现了驱动保护程序,因此调试更加艰难。我转身去破解专业软件。那些专业软件竟然没有加壳保护,有如进入无人之境,破解真是太容易了。不过这些专业软件年代久远,也不是省油的灯,竟然有win16位和win32程序共存,调试起来非常困难。16位程序调试工具差,没有内存断点。只能猜测分析函数,还好,16位程序程序段很小,程序也不大,功能大的程序需要用到dll动态链接库,他们有导出函数,这样通过函数名字逐个分析调试,找出关键代码,逐个排除,找出真正的功能代码。有时候实在没办法,只能猜。32位程序调试工具好,如果没有保护,我的天啊,这种程序简直就是开源软件,破解它们有如探囊取物。
二进制程序也是开源软件,机器汇编代码可以看,只要能调试,破解指日可待。有一种程序是真正的开源软件!
java程序其实是开源软件
sun设计java虚拟机的时候就有先见之明。破解java程序也可以直接用ida反汇编class文件,然后修改汇编代码直接破解掉。这个没什么惊奇的。我告诉你,用java反编译软件直接把class和jar还原出源代码,然后修改源代码重新编译后替换回去,其实也许你不要重新编译代码,而是看java代码就能逆向出算法,比如计算系列号算法,如果还是看不出来,可以修改编译调试他的代码,那就没有任何难度。java的class还不能加壳,所以java程序应该归入开源软件类别。C#也是。
逆向其实就是破解,一种很美化的说法,逆向和破解都免不了要反汇编和调试。不过逆向需要还原出高级语言,破解可能不需要,直接破掉就能完成任务,所以逆向比破解还要高一个等级,不过现在ida似乎可以把整个函数还原出c语言程序,不过我还是喜欢自己根据汇编思路写算法,而不是直接用。但是计算系列号算法要反过来的,并不能直接用里面的函数。比如流程 注册成功数=系列号*转换数,那么系列号=注册成功数/转换数,一些数学运算,并不能用二进制代码函数算法。
破解是解除软件的收费功能。如果软件很有价值,破解掉让人人能用,那开发公司就很难赚钱。破解其实还是比较容易的,有时修改一个t跳转就好。
逆向是破解软件功能,抽取核心算法和核心数据,然后可能模仿山寨出同样功能的软件,这个是高等级破解了。仿冒,仿造,山寨软件!核心数据和算法一但被取出和山寨,这个软件就可以被低价格仿冒者拍死。我现在做逆向就是干这种活,而不是简单破解掉其注册保护。我不会说我准备破解谁的软件,但是可能我已经破解了你的软件你还不知道!你不会求爷爷告奶奶叫我不要破解吧。
有一种人,苦逼程序员苦苦写出来的软件,他们就去破解逆向出他们的程序,掠夺他们的数据和算法。同是程序员,相逼何太急!这就是程序员和逆向工程师。
都是吃饭的干活,程序员竟然分裂成你死我活的两种人,可悲!不过大家尽可放心,我现在只是破解西方国家的软件,他们的价值连城软件就这样被破解和逆向,仿造了。
这就是鲁迅说的拿来主义?西方列强的东西,不要白不要。国内还没有核心技术软件要逆向吧?软件有国界。
随着软件保护的加强,现在出现了驱动保护,在内核保护软件让你不能调试分析。不过道高一尺魔高一丈,你有驱动,我也能写驱动,在内核废除你的保护功能。这不,游戏界出现了np,tp.xtrap,hs等驱动保护程序,现在我也开始写驱动了。没有设备驱动,游戏界都能推动黑客研究和开发驱动了。我觉得作为程序员,写破解游戏驱动保护也不是一件难事吧,我要悄悄地干活。
开源和逆向目的是一样的,都是金钱推动下收钱与反收钱的斗争,高价与低价的竞争,技术垄断与反垄断的斗争,一个更加诱人的行业,吸引数万密界高手在二进制机器语言黑暗世界里摸黑挖掘,寻找蛛丝马迹,挖掘出珍贵的机器代码,并还原成高级语言。何苦做破解,何必做逆向,但是都指向一个字:钱。
也许逆向推动中国核心软件技术发展,可能不是一个钱字能覆盖他们的功用。逆向变相促进软件开源,中国已经进入了逆向时代,另类开源时代。
有人说,既然这么厉害,为何不组织一个逆向团队大力挖掘?我说,这个行业并不是完全合法,还可能摧毁商业软件的根基,必须偷偷摸摸,不能做大做强,不然又要抓人了。
逆向在黑暗的世界孤独挖掘,见不得光,其实你自己也一样。
转载于:https://www.cnblogs.com/riasky/p/3365992.html
从开源时代进入到逆向时代相关推荐
- AI正由感知智能时代向认知智能时代迈进
随着科技的高速发展,人工智能时代美好生活的蕴涵人工智能诞生至今,已有几十年的发展历史,经过几十年的发展,人工智能已广泛渗透到人们生活的经济.政治.文化.社会和生态发展的各个领域,人工智能不论对社会的基 ...
- 马上就5g时代了,5g时代有什么风口吗?
随着移动互联网的逐渐升级,一个又一个经济热点的爆发,人们对风口的认识越来越充分,那么5G的到来是不是会爆发更大的风口和红利呢?让我来为您解读. 我们要知道2g时代就是文字时代,那时候是网络小说盛行的年 ...
- 每个时代都有每个时代的风口
每个时代都有每个时代的风口,即便看准了所有风口,没一技之长依然抓不住机会! 你要做的在没风口的时候努力学习,让自己成长成为某一领域的专家,找到自己感兴趣或擅长的点并不断优化精进,在风口来临时才不会不知 ...
- NLP:自然语言处理技术领域的代表性算法概述(技术迭代路线图/发展时间路线)、四大技术范式变迁概述(统计时代→大模型时代)、四个时代的技术方法论探究(少数公司可承担的训练成本原因)之详细攻略
NLP:自然语言处理技术领域的代表性算法概述(技术迭代路线图/发展时间路线).四大技术范式变迁概述(统计时代→大模型时代).四个时代的技术方法论探究(少数公司可承担的训练成本原因)之详细攻略 目录 一 ...
- Atitit 互联网之道 1.1. 互联网 1 2. 互联网经历了三个时代,门户时代、搜索/社交时代、大互联网时代 1 2.1. Web2.0.搜索/社交时代(Web 2.0) 2 2.2. Web
Atitit 互联网之道 1.1. 互联网 1 2. 互联网经历了三个时代,门户时代.搜索/社交时代.大互联网时代 1 2.1. Web2.0.搜索/社交时代(Web 2.0) 2 2.2. Web ...
- 时代产业变迁与时代产业创新:如何重构人与产业的链接
随着互联网时代的全面到来和生产供应市场需求的萎缩,生产端不得不在求生存的情况下直面消费群体,重构产业与人的连接,来应对企业与消费者之间,企业与产业变革之间,消费者与市场之间发生的重大变化. 那么,如何 ...
- 什么是Web1.0时代、Web2.0时代、Web3.0时代?
什么是Web1.0时代.Web2.0时代.Web3.0时代? 互联网的起源.1969年美国的阿帕网的出现标志着互联网的诞生,而1973年第一台个人电脑The Xerox Alto的出现就预示了互联 ...
- 现在的时代不是互联网时代的延续,因为其底层逻辑已经改变
拥抱实体经济,绝对是当下互联网玩家们的首要选择.无论是头部的互联网企业来讲,还是新生的互联网玩家而言,它们都不约而同地将关注的焦点聚焦在了这样一个方向上. 透过这一点,我们可以非常明显地感受到,一个全 ...
- 大数据:冷兵器时代到热兵器时代的变革
文章讲的是大数据:冷兵器时代到热兵器时代的变革,世界著名的未来学家John Naisbitt认为"我们首次拥有一个基于关键资源(信息)的经济体制,不仅是可再生的而且是自发生产的.耗尽它没关系 ...
最新文章
- 赛迪展望 | 一文了解“2021年中国先进计算产业发展趋势”
- 从程序员到项目经理(20):让员工为目标而干活
- Affinity Photo中文版
- 《数据分析变革:大数据时代精准决策之道》一第一部分 变革已然开始
- JZOJ 5182. 【NOIP2017提高组模拟6.29】码灵鼠
- 信息学奥赛一本通 1958:【12NOIP普及组】寻宝 | OpenJudge NOI 1.12 06 | 洛谷 P1076 [NOIP2012 普及组] 寻宝
- java memorystream 包_存储在MemoryStream中的裁剪图像中心
- 【noi 2.6_162】Post Office(DP)
- 快递物流行业如何用易语言对接验证码短信接口DEMO示例
- CLUSTERDOWN Hash slot not served
- 指数函数、对数函数、双曲函数
- Vue router 默认加载 views 文件夹下全部vue文件
- JavaWeb项目上云教程(Java项目在腾讯云上部署操作教程)
- linux ltp,LTP
- 解读国内外园艺机器人的应用现状
- 网易互娱9.05笔试
- 人民币美元兑换程序python简单_纯代码实现人民币兑换美元
- 字符移动,大写字母后移且保持相对位置不变、调整顺序奇数位于偶数之前
- 自己用JavaScript写出吉他和弦图生成器
- 数据包从物理网卡流经 Open vSwitch 进入 OpenStack 云主机的流程
热门文章
- Linux下的USB总线驱动(03)——USB鼠标驱动 usbmouse.c
- ARM 学习笔记整理(一)
- python3 opencv 图像二值化笔记(cv2.adaptiveThreshold)
- Android系统访问串口设备
- wifi信号弱爆了 教你增强wifi的方法
- 【案例】js 获取今天/昨天/近一周/一月/一年的日期,时间戳转日期,
- HDU 4687 Boke and Tsukkomi【带花树】
- 会议室管理前端页面_会议室预定设计
- idea Springboot项目sout控制台中文输出乱码解决方案
- 解决电脑出现 R6034 Runtime Error