经历:

初衷:

不知不觉,浑浑噩噩地在大学里待了一年,收获反正是很多的,尤其是加入了学校信安工作室,接触到了逆向这一方向

选择学习逆向的初衷并不是因为它难,入门门槛高,才给人这样的感觉,要么就是:”你学的东西难,你在显摆,你在装”;要么就是:“学这么难的东西,长时间没啥产出,你能学好是吗,别再假装卖力了,无人在意”,以下是我的经历,准确的来说,是我的一些经历,从而使我对逆向稍微”感兴趣“

儿时

其实不是这样的,我呢,小学的时候因为家里过的并不是很富裕,没有手机,总想玩手机,但是没办法,太贵了,那个时候家里做生意,父母殷勤劳作,也不敢让他们了解到我对手机游戏的热衷与向往,因而偷偷去网吧玩电脑打游戏,那时村里的网吧便宜,一个小时就一块钱。
但该来的总会来,网吧的老板娘(我喊她姑姥姥)呢正好是我妈妈发小,不用说,她们经常来往,正好有一次我在那玩4399洛克王国的时候,心心念念的皇家圣光迪莫到手了,惊呼了一下,当时并不知道我妈去找老板娘玩,给我逮到了……

自那以后我妈也是担心我偷偷去网吧玩电脑而给我买了一台台式电脑,在那时配置算可以的了,能玩cf,虐杀原形,逆战,4399,7k7k,红警,甚是怀念,然而那时候的网络是通过宽带电话机接过来的,然后再用网线接电话机(具体咋操作的也不清楚了)得到的,没有wifi无线网,就只是单一有线宽带网。直到有一天宽带因欠费而不能上网(那时候小,还啥都不懂),我就让我妈给宽带维修人员打电话,人家说就是宽带手机号欠费了,后面每当宽带不能用的时候我就提醒我妈交话费。但过了两年,我们被告知宽带欠费了,我就还以为是宽带绑定的那个手机号欠费了,就提醒我妈交话费,然并卵,并不是因为手机号欠费了,而是宽带业务欠费了,这我才直到每年需要交500块的业务费,只是第一年的是送的。果不其然,为了省钱,我们选择了不交(那时家里过的是真急),至此结束了我两年台式电脑的生活

后来有了智能手机这个东西,恰好我的舅舅家里是卖这个的,考虑到我们那时候做生意比较困难,我舅舅就给我家一个分店,我妈当时做的应该是代理,自然而然,我也有了人生中的第一步手机,联想的,那时候的安卓最新版本是4.42,root也是用kingroot这个软件直接给了,至于为什么一拿到手机就像root,早期是因为我玩4399一直很好奇里面的无敌版是怎么做的,上百度上查是用一些反编译工具找到数值代码然后进行修改,后来手机版上也有很多破解版的游戏-地铁跑酷,神庙逃亡,暗影格斗, 天天酷跑(早期可以用gg修改器来修改天空之城的钥匙,无限刷钻石),而且当时有一个知名度超级高的社区论坛-葫芦侠,我就是从那里了解到在手机上破解游戏,用的最多的一个工具就是gg修改器,但是这东西要root才能玩,后面安卓7时期有一个很火的东西叫做框架,可以实现无root玩转gg修改器,再往后就是虚拟机,框架那个时期的国内很多手机厂商就已经开始抵制root了,虚拟机时代更是很多手机厂商关闭了root通道

但是root后发现,gg修改器这东西我玩不明白(那个时候应该是四年级,理解能力比较差,就会一点模糊搜索以及变值(址)搜索,里面好多种指针偏移,啥都不懂),加了好多这种qq游戏破解群,索性就开始玩别人群主做的公益脚本,那个时候真好,还没有圈钱这一说,他们学破解的都是为了练技术才搞的公益,泛滥性还很低(那个时候的人们打游戏的还是挺少的),当时迷你世界,登山赛车,植物大战僵尸2的安全性比较低,随意修改没人管的(毕竟当时还都是单机游戏,没有设置云防护),其中迷你世界可以通过人家做的gg修改器脚本(.lua脚本)修改皮肤,生存模式修改道具数量等,也是玩的比较爽,那个时候学习成绩也好,家长也不怎么管我玩手机

四-五年级:

四:

而后有一段时期,手机(那时手机已经换成了只为发烧而生的红米note2,还有一部乐视)玩王者荣耀(那个时候估计刚出来)很卡,就又去葫芦侠里下载了一些开核和调核的工具,毋庸置疑也是root了才能用,但是开完后虽然很烫但是玩着就是挺流畅,也没管太多调教这方面的东西,而且当时用了IP tools这个工具玩别人的路由器(那个时候家里已经没有无线网了,都是蹭别人的wifi),因为我在家里,别人的wifi在他们家,我的信号比较差,再加上他们一直用,我这边速度比较慢,就进入到他们家的路由器给他们网速限制了,再不行就直接禁止联网(也是很坏的当时),路由器页面的密码我都是直接根据WiFi的名字百度搜对应的品牌,然后再搜各品牌默认的路由器登录密码,包括wifi密码。后来可能是被发现了,他们把WiFi密码给改了,但是呢当时有个东西叫wifi万能钥匙,我发现了他们改密码我照样能破开,就继续干这事了(2333),再到后面他们可能是找路由器的维修师傅了,直接给安全策略给改了(当时还不懂,就去网上搜为啥wifi万能钥匙破不开wifi了,也是找到原因了),后面就开始解决这件事,随即找到了幻影WiFi,以及各种爆破WiFi密码的软件,当时还以为手机root了就跑的快了,但是还是不行的,WiFi密码也是经常爆破了之后开始玩他们的路由器,他们改密码,我一爆破就得连续等几个晚上(期间就只能玩单机游戏了,嘤嘤嘤),后面到五年级和六年级的时候也老实了,因为想到一直这样也不是个法子,然后当时我们买舅舅的全屏智能电视,正好送我家一台路由器,突发奇想之后,我在网上找到了路由器wifi桥接的方法,那段时期也是给我玩爽了,wifi速度老快了,但很遗憾六年级的时候他们家搬走了,但好在我也开始上初中了(那个时候我们也已经从手机店搬走开始干装修了,也是一个舅舅转给我们的店铺,店里正好有他们留下来的带有wifi的路由器)

五:

这个时候红米note2和乐视那款手机发行的也有一段时期了,随着游戏资源包的扩增,画质提升,所需配置的提升,利用开核工具已经满足不了流畅运行王者荣耀和刺激战场的需求了,又烫又卡,这时开始接触搞机(别乱想哈,上网上搜一下就知道是啥了),也接触到了很多论坛如移动叔叔,酷安,小米社区(那个时候管的不严),开启了”既不让手机发烫也能流畅运行游戏的方法”之旅,也贪玩下载了一些wifi攻击软件(当时不知道是wifi攻击的app),我一看用root就能直接用这个工具让别人的wifi不能用而且还能给别人访问的网页里面的图片给换成自己给他们替换的,那个时候恶搞堂弟,给我玩的笑死了快,也正是在他喊”我靠,我快手里的封面图片咋全部变成如花了“,我随即笑得快喘不过气了,事情的真相也暴露了

六-九年级:

六年级:

这个时期的我已经不只是玩lua脚本了,因为腾讯,网易的游戏开始加强了安全防御,专门检测有没有什么软件修改游戏数据,检测到了要么就是闪退,要么就是封号(但是后面直接用gg修改器隐藏过23就可以过这个检测了),但还没开始检测root这个东西,因为那个时候厂商并不是特别抵制root,因为出事率比较低,那时候的黑客或者黑产大部分攻击电脑,对手机直接攻击的手段很少,但当时因为误下载一些需要root或者无障碍才能“正常运行”外挂,工具从而导致锁机和格机例子又确实渐增,包括我就中过很多次,那时候小,经不起诱惑(刷q币,改王者荣耀的点券各种容易中招的软件),也不知道到底是不是真的,可能是虚荣心横溢了,哈哈。我中过root锁机(游戏外挂),也中过无障碍锁机(自动抢红包),甚至最严重的时候在初二的时候红米k20pro因为想玩奔跑吧少年的一个外挂中过一次格机(data数据以及IME,基带全掉了,那个时候仍然经不起诱惑捏哈哈,最后还是找酷安上的大佬花100快解决了),被锁机的时候,幸好手里有第二台手机,就开始在问qq群里的大佬红米note2被锁机了咋办,人家就询问是root锁还是非root锁(那时候的大佬都挺好的,有问必答),就得知非root锁一般就是直接用电脑上的一些手机管家工具直接给开屏了,要么就是利用手机刚重启这段时间,锁机应用还没被系统启动(一般来说非root锁机手段会给你的这个软件加上自启动,但是系统刚重启需要一些初始化的时间,这个时间可以考虑利用手速把它删掉,但是一般都是用电脑的管家工具强行解开手机,更恶心的就直接音量键+开机键双清了),而root锁更复杂点,双清有时候都解决不了,而是直接清data,因为双清一般只把应用给删了,对应的文件夹还存留在了手机里,root锁直接就是利用这点给你入侵了,好在当时小米的root防护机制并不怎么强,一般都是刷第三方rec(twrp)然后面具root,之后就可以对系统为所欲为了,因此果断进twrp找到对应的文件夹给删了,要么就是直接格式化data,反正了解的东西倒不少,但所有的东西都只是教程+工具,内部的代码以及底层原理是不太通的

七-九年级

那时候疫情,真是给我玩得爽翻了,后面锁机对我也没啥干扰了,就下载市面上各种公益外挂,当时玩得最多的就是香肠派对,各种天线,范围,自瞄,上色,透视,物品修改的挂全都玩过,但是只追求爽感,没有追求是怎么实现的热情,只知道自己懂点root,会点刷机,刷面具,懂一点修手机的能力,那个时候玩的都不是底层,但无妨我在朋友面前对手机的理解力之高,也正是这样,我的学习成绩一直拉低,后面县一高也是浑浑噩噩考上的,当时就玩手机从初一玩到初三,搞机,刷机,玩调度,刷内核,慢慢地变成了一个”刷机佬”(其实就是一个不懂原理的小白)

高中以及现在

回头看,早期很多折腾更多是在跟着现成工具和教程走,既不理解底层原理,也有一些不够成熟的尝试。这些经历不是我现在想炫耀的技术,而是让我逐渐意识到:会用工具不等于懂原理,也让我后来更愿意把兴趣放在 CTF 和授权环境中的安全学习上。

这个时期因为学习压力的上升,加上学习对手机查管的制度特别严厉,就不怎么玩手机了,就高一的时候在咸鱼讨了个红米k40一直玩到第一次高考之后才换的红米k70pro,中间再多的就是一个高一从200多分,经历拷打慢慢上升到接近500分的成绩的故事,但是中途碰到疫情,又是狂玩,导致高一高二的基础打的不行,高三因为如此,又开始恶补基础,我现在逆向的学习瓶颈感觉就是这样,但是c语言就学了两周,汇编更是就学了一周,底层知识不行,现在碰到稍微算不上难题的题,不能依靠加密算法的特征,以及各种混淆的特征来做了,觉得it’s time to come back了,但由于内心不平衡又不想补,想继续做题,一直处于这样的循环,一直在瓶颈期里差不多有四个月了快,也就是说我现在的逆向能力与水平只比之前四五月份的能力强了么一丢,因为nssctf上的前十三页的逆向题刷的风雨无阻,此前是一道题都要磕半天,加上那时候的ai分析能力并没有五月之后的强,感觉这段时间除了利用ai的能力(花钱能力)的上升,其他都在止步,现在意识到了这点,而且有考虑到大二暑假想找实习,想尽快解决这方面的困境,人说二进制想出新手期最起码也得一年,但我觉得正是听信了这点才导致现在的原地踏步,尽管现在已经靠ai拿了一点国奖和省奖,但这只是结果,以后的工作需要的是过程+结果

目前已知的方法论:

在意识到错误之前的做题的思维模式是这样的:

打开IDA → 看到一堆汇编 → “这好像是TEA” → 搜脚本 → 跑脚本 → 出flag / 不出flag → 卡死 → 问AI → AI给脚本 → 梭哈

问题在哪?

我把程序当成一个黑盒子。只关心”输入是什么、输出是什么、中间大概是什么算法”,但问我不知道这个程序在内存里到底长什么样、数据是怎么流动的、变量存在哪个地址

具体表现:

  • 看到 mov eax, [ebp-0x14],我只知道”把某个东西移到eax”,但不知道 [ebp-0x14] 这个位置在C语言里到底是什么变量
  • 看到一个循环,知道”它在循环”,但不知道循环里操作的是数组的第几个元素、结构体的哪个字段
  • 看到跳转,知道”它跳了”,但不知道跳转的条件对应C语言里的哪个if/else逻辑

我靠的是模式匹配(”这个特征像TEA”),而不是逻辑理解(”这段代码在做什么事”)。

所以一旦出题人魔改了本来就特别难的算法、又加了大量混淆、换了结构,我的模式匹配就失效了,就”无从下手”。

我意识到了这点问题,但并不知道具体怎么解决,也有可能意识到解决这个问题需要耗费大量时间,潜意识里已经开始抵制了

未完(正在借鉴大佬方法论ing)