近一个月学习的思考(逆向、NLP)

逆向工程

逆向工程的门槛

开始学习逆向已经快一个月了,但是逆向工程和其他技术相比,门槛更高,前期所需要的积累更多。

不像之前做开发,从HelloWorld开始,然后就能够从一些简单的模块写起,逐渐有能力负责一个复杂的功能,甚至到一个系统的架构设计。从开始学习就能够参与到实际的项目中,在实战中不断积累和进步。

也不像之前学习Web渗透,有足够多的没有防护的网站,自己也可以很容易的搭建类似实际环境的网站。因此在学习中,可以有一个又一个小的收获,在提高的过程中不乏乐趣。

在这近一个月的时间里,不得不花费很多时间在课程和作业上,因此实际学习的时间可能只有每周四天,还不包括晚上。虽然感觉到自己每天都在进步,和一个月前相比有了明显的提高,但是仍然不敢说自己摸到了门槛,只能说是远远的看到了门在哪个方向吧。

这一个月学习逆向的内容

这一个月的时间里,写了最最简单的外挂和注册机,分析了几个恶意软件和一个CVE利用的shellcode。马上清明节假期就要到了,如果有时间把分析的过程整理一下,以备以后参考。

语义计算&深度学习

这个学期选了一门自然语言处理(NLP)相关的课。虽然对NLP的兴趣不大,但是作为现在最火的方向之一,还是了解一下吧。上个周末花费了大概两天时间,写了一个词汇相似度计算的作业,对各种算法也仔细了解了一下。

感觉NLP和深度学习的一些应用思想很类似,都是用大量的样本,提取一些特征,然后总结规律。当然,这个规律不只是统计意义上的,也有可能是通过各种算法和数据结构进行处理。不过,感觉这些应用目前都是让机器“贴近”于人的思维,除了在熟练度和记忆容量上战胜了人,其他方面和真正的人类还有很大的差距。

而且,这些机器目前处理的维度仍然非常有限,虽然近几年神经网络的规模借助GPU的发展扩大的很快,但是特征向量的维度仍然和人类无法相比。而且这些特征,往往也是人为抽取的。

逆向工程这么复杂的一件事,作为一个人都很难真正的精通,抽取向量更是极其艰难。而且,和文本、图像、语音相比,数据集的获得也极其困难。

至少从短期来看,通过深度学习来逆向代码可能不太有希望了。或者说,至少实现了人工智能写一个大型的工程项目之后,或许才可以一试吧。

你可能感兴趣的:(随笔)