
逆向学习
dsb2468
这个作者很懒,什么都没留下…
展开
-
switch case与if else执行效率分析
结论:switch...case的效率会比if...else要高一些一、 if...else语句对if...else函数反汇编后,能看见这个函数所采用的方法是按顺序去比较(jne表示“当不等于时转移”),如果输入的数值所对应的if条件靠后的话,会进行较多次的对比判断后,才能进入对应的分支。二、 switch...case语句 由上图可以看出,当开始进行switc原创 2017-05-23 02:38:22 · 2823 阅读 · 1 评论 -
原码、反码、补码
TIPS:1字节=8位正数的原反补是一样的 原码:n位的二进制数,其中最高位为符号位:正数为0,负数为1。剩下的n-1位表示数值本身的绝对值例:X=+10 1011 , [X]原= 0010 1011 X=-10 1011 , [X]原= 1010 1011 PS:① 位数不够的用0补全;② 负数最前面补1,正数补0; 反码原创 2017-05-18 00:51:47 · 1557 阅读 · 3 评论 -
使用CMD命令编译C源文件
使用CMD命令编译C源文件cl /c只编译,生成obj文件,不链接 link 链接,生成当前平台可执行的文件 cl /p 查看预处理指令,并且生成*.i文件Helo world程序解析① #include 表示引用自环境变量中,环境变量由编译器在安装时,自动写入系统。加载顺序为:A、环境变量 B、当前目录若为“ ”的形式,则表示引用来自原创 2017-05-18 00:54:27 · 812 阅读 · 0 评论 -
缓冲区溢出——远程代码执行问题
1、 缓冲区溢出——远程代码执行问题如上图,如果再输入数据时,不加以限制,则会出现,输入的数据覆盖19FEEA之后的区域,当覆盖到19FEEC区域的时候,就会影响到函数的返回执行代码。所以,如果用一段精心设计的代码,就可以执行任何想执行的操作(覆盖修改了函数的的返回地址,将返回地址改到19FEE0,就可以执行输入的代码了) 策略:① 对输入的地方进行长度验证,比如上图的地方原创 2017-06-06 12:37:32 · 1287 阅读 · 0 评论