黑客易筋经之修炼逆向功底
电脑是什么?电脑是个计算器,或者叫计算机。我们在电脑上打游戏、写文档、做PPT,背后就是这个计算器在玩命地加减乘除,所以不管多小的电脑都得给它加个风扇,帮它散热,冷静冷静。
如果我没记错的话,减法、乘法、除法好像都是基于加法实现的,你看看,我们在电脑上的一个很简单的操作,它都加了不止几百轮了,能换个工作方式吗?好像不能。
冯诺依曼体系下流水线培训出来的员工,只会这么干,可是这哥们实在太快了,虽然加了几百轮,但是1秒钟都不到,甚至远远低于1秒钟,如果它的风扇呼呼的吹,持续时间已让你无法忍受了,让它休息休息,它也是有寿命的。
我在51testing测试圈围绕安全测试写了个系列专题,第一部分是关于web安全的。
安全测试当然不止web安全了,还有逆向、二进制、加密解密、APP安全等,我们这篇文章就是和大家一起玩一玩逆向。
逆向工程
逆向工程容不容易?挺容易的,觉得不容易是因为你不适应。
逆向是在没有软件源码的情况下弄清楚它的逻辑行为,往好了说,恶意软件和病毒分析需要会点逆向技术,往不太好了说,软件破解也要会逆向技术。
如果说逆向工程难,那也是针对解决问题的难度,是因为问题的难度,提高了逆向工程的复杂性,拆很简单吧,也不能这么说,看是拆自行车还是拆汽车。
电脑就是做加减乘除,我们做逆向,无非就是看它加的数据在哪儿,要存的数据在哪儿,下一步要取得数据在哪儿,顺手改改,或者往里面塞几个,软件破解说白了不就是干这个吗。
当然了,说很容易,做得话稍稍复杂一些。那它加、存、取得数据在哪儿,在电脑主板上面的一堆集成电路里面,CPU是集成电路,内存是集成电路,机械硬盘好像不是集成电路,固态硬盘是集成电路。
逆向有两种分析方式,一个是静态分析,一个动态分析,静和动是看软件有没有运行,不运行就是静,运行就是动,动态分析就要实时观察CPU和内存了,因为加减乘除就是靠它俩。
集成电路是啥?好像是一堆继电器。继电器是啥?是电的开关。
意思就是这个电流通不通过就靠继电器,开和关正好可以对应1和0,于是乎二进制就出现了,还可以对应真和假,于是乎布尔代数就出现了,布尔代数在前,计算机在后,基于布尔代数用一堆继电器组成逻辑门,于是乎计算机就可以做加法了,在把一堆控制这些开关的指令烧进CPU里面去,有了这些指令就可以写程序了。
上面就是超级简化版的计算机原理,下面再来个超级简化版的操作系统原理。
操作系统是一个软件,只不过是电脑一开机第一个运行的软件,除去BIOS里面的程序。操作系统是干嘛的,好像是运行程序的,动动鼠标是个程序,打开个文档也是个程序,其实可以把它当成我们跟计算机设备的接口,内部设备CPU和内存,外部设备就多了,硬盘、屏幕、鼠标、键盘、网卡、显卡,反正只要能接到主板控制总线上的设备,有啥它就控制啥。
或者讲分配,最明显的就是内存了,它自己就是个程序,也要占用内存,所以在它之上运行的程序不能占用了它的内存,于是乎内存管理就出现了,为了便于分配内存,它就要检查你写的程序是否符合规定的格式,比如说:windows上的程序叫PE文件,linux上的叫ELF文件,Mac上叫mach-o文件,本篇文章是针对windows上的PE文件。
静态分析
既然讲到了PE文件,直接讲格式太枯燥了,我们直接用安全测试工具分析下。
安全测试工具地址: https://gitee.com/samllpig/SafeTool-51testing
详细安装教程: http://quan.51testing.com/pcQuan/lecture/117
根据教程,打开我们的安全测试工具,选择渗透测试-逆向平台:
这文章写得牛,点赞
页:
[1]