c++反汇编与逆向分析技术揭秘_难者不会、会者不难,浅述软件编程和逆向分析的区别...

编写程序,简称编程,是程序员、软件工程师的基本功,通俗地说就是敲代码。与编程相对立的词叫做"逆向",或许有很多人不清楚开发和逆向的相关概念,本文对此做些简单阐述。

d5a699fcfee03eeff910980f78b71b16.png

程序员

打一个最形象的比喻,如果把软件开发的过程比作盖一栋大楼,那么逆向就可以比喻成"拆楼"。从字面意思理解,逆向这个词多少带有灰色的意思。是的没错!软件逆向分析技术是系统与网络安全(黑客技术)的一个重要分支。精通逆向分析技术的人,好则可以分析恶意代码找出应对之策或者漏洞修补。坏,则会损害付费共享软件的发展(软件破解)、编写病毒木马、流氓软件传播等,这类人被称作cracker,与擅长网络入侵的hacker不同的是,cracker专注于系统底层软件加密和破解。

053317fcafe193b913395eea32529c10.png

技术是双刃剑

从技术角度分析,软件编程开发和逆向工程是两个不同的维度,编程需要掌握程序设计语言和算法结构,注重功能上的实现,由程序到软件就涉及Windows API的封装调用了,因为面向对象编程的发展趋于成熟,有大量成熟的类库可以使用,使得开发效率和学习入门花费成本很低。有基础的人,尤其是在互联网盛行的今天,各种源代码和IDE唾手可得的情况下,在半年到一年时间之内,基本可以完成中小规模的软件项目。

1a12526e21d88758291d3c9fdc38c1d6.png

主流计算机编程语言

逆向的原则就是破坏黑盒子的封装性,如果目标对象是一款开源软件,那么逆向它是没有意义的,因为直接看源代码比分析反汇编指令要容易的多,毕竟高级语言的可读性摆在那里。所以逆向分析针对的是赤裸裸的exe、dll、sys等,没有源代码,通过各种动态调试(如Ollydbg)、静态分析(如IDA pro)的手段,观察反汇编代码、内存地址、寄存器来分析指令背后的功能操作,依据此"倒推"源代码,这就是软件逆向工程的基本任务。

ac48c0e4a119ef1521d81bda02fb8e26.png

IDApro能够分析程序指令执行流程,尤其是著名的F5大法! 逆向工程师必备!

e1ab71e0f8c76125022d3df9f3ff7523.png

家喻户晓的Ollydbg

世界上的程序员多如牛毛,但是真正的具有软件逆向分析水平的工程师是万里挑一。

对计算机软件安全有兴趣朋友的欢迎给我私信,评论。看完不要忘记点一下关注哦!更多干货等着你!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值