二进制入门

一:二进制安全:
二进制安全是一种主要用于字符串操作函数相关的计算机编程术语。一个二进制安全功能(函数),其本质上将操作输入作为原始的、无任何特殊格式意义的数据流。对于每个字符都公平对待,不特殊处理某一个字符。
二进制入门_第1张图片
二. 为什么学习,学习后可以做些什么?
首先提出一个问题,不知道大家有没有碰到过在写代码中遇到过以下这样的问题:

明明看起来代码写的毫无问题,但是却在main函数之前就已经报错。
碰到一款好的软件,但是广告太烦无法关闭。
你想知道一款软件的功能是如何实现的,却苦于没有源代码。
软件出现崩溃,想要找到原因却无从下手。
电脑中了病毒,杀毒软件却无法查杀。
刚刚发布的产品,马上就被人破解了。上面只是提出一部分常见的问题。在学习二进制安全后你可以这样解决以上的问题。

(1). 因为二进制安全需要深入理解计算机的运行机制,操作系统原理。所以碰到此类问题,你可以很快定位到错误位置,为你的编码工作提供强有力的支撑。

(2). 碰到这类软件的时候,你可以通过逆向工程的方式,将其中的广告页面替换,甚至直接将弹出广告的函数直接ret或用nop填充掉。还给自己一个清静没有广告的办公环境。

(3). 当你想知道这个功能如何实现的时候,你既可以静态分析其函数的实现逻辑,也可以动态跟踪它的数据流向,从而完整了解该功能是如何实现的。

(4). 当软件崩溃是不是无从下手,但是学了二进制安全之后你可以使用调试器接管异常,去发掘漏洞产生的位置,定位到模块或者函数的某一条语句。然后提供给厂商修复或者自己二次开发使用补丁修复漏洞。

(5). 当中了杀软无法识别的病毒是不是很恐慌,学习了二进制安全后就可以直接手动分析病毒做了些什么,并且将其执行的操作逆转,拯救中毒的计算机操作系统。

(6). 刚刚发布的软件马上就被别人破解了,没有收入了。是不是很郁闷,当学习了二进制安全后,你可以对你的软件加混淆、加花指令、加反调试、加代码虚拟化等等手段,让破解者的破解成本增加到无法承受,从而放弃破解。
二进制入门_第2张图片
三:学习后可以从事什么样的职业:
逆向工程师,恶意代码分析工程师,漏洞分析工程师,漏洞挖掘工程师,游戏安全工程师,安全研发工程师。

四:简单的进制转换:
就如同十进制一样,二进制出现的数字也只有0和1,简单的一些为0 1 10 11 100 以此类推,相似下去。三进制为0 1 2 10 11 12 20 21 22 100从这可以看出,二进制三进制基本规律就是,二进制不出现二,在0开头后用1开头,三进制不出现3,在0开头后1开头,然后2开头,然后到22时,再增加进位到100表示是10,然后继续增加进位,其都是从右往左进位。

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