浮点数在计算机中的编码方式

在阅读《C++反汇编与逆向分析技术揭秘》一书中遇到了一个有趣的问题,摘出来跟大家分享下。 浮点数编码转换采用的是IEEE规定的编码标准,float和double这两种类型数据的转换原理相同,只是用于表示的范围有些区别,IEEE规定的浮点数编码会将一个浮点数转换为二进制数。**以科学记数法划分,将浮点数拆为3部分:符号、指数、尾数。 float类型在内存中占4字节(32位)。其中最高位用于表示符号**;再剩下的31位中,从右往左取8位用于表示指数,其余的表示尾数,如上图所示 以12.25f为例:
分类: 其他 发布时间: 03-19 22:11 阅读次数: 0

一个简单程序,从汇编初识栈溢出漏洞

阅读本文需要C++编程基础以及汇编知识,废话不多说,进入正文 // StackOverFloat.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "string.h" #include "stdio.h" #include "windows.h" int test(char *str) { char buffer[8]; strcpy(buffer,st
分类: 其他 发布时间: 03-19 22:11 阅读次数: 0

scanf汇编的实现过程

出于好奇,探究下scanf汇编怎么工作的,练习下思路。 // func_scanf.cpp : Defines the entry point for the console application. // #include "stdafx.h" int main(int argc, char* argv[]) { char password[1024]; printf("please input password: "); scanf("%s\n",
分类: 其他 发布时间: 03-19 22:11 阅读次数: 0

读书笔记:0day安全:软件漏洞分析技术

实验2.2修改临近变量: #include "stdafx.h" #include "stdio.h" #include "string.h" #define PASSWORD "1234567" int verify_password(char *password) { int authenticated; char buffer[8]; //这里声明的变量在后续的strcpy操作可能会发生溢出 authenticated = strcmp(passw
分类: 其他 发布时间: 03-19 22:11 阅读次数: 0

读书笔记2:0day安全:软件漏洞分析技术

实验修改函数返回地址 经过上个笔记的学习,我们了解了调用verify_password(char * password)时栈的情况:(注不了解函数调用方式的建议先找文章了解关键字:call的调用方式) 我们都知道,执行完verify_password(char * password)是call指令调用是还会把它的下条指令地址入栈,用于调用完之后返回上层函数继续执行程序指令: 其实大致方法还是跟修改临近变量的方法一样的…就是把我们修改入栈时的返回地址,从而实现控制跳转… 源码还是同一份这里就不贴
分类: 其他 发布时间: 03-19 22:11 阅读次数: 0

读书笔记3:0day安全:软件漏洞分析技术

实验内容:修改程序执行流程 引用书的原话:”用键盘输入字符的ASCII表示方位有限,很多值(如0x11、0x12等符号)无法直接用键盘输入,所以我们把实验的代码做了下改动,将程序的输入改由文件读取出字符串“ 源码贴出: #include "stdio.h" #include "string.h" #include "stdlib.h" #define PASSWORD "1234567" int verify_password(char *password) { int authen
分类: 其他 发布时间: 03-19 22:11 阅读次数: 0

读书笔记4:0day安全:软件漏洞分析技术

实验内容:向进程中植入代码 这节中,依旧抛出原文:”上节实验中,我们让函数返回main函数的验证通过分支的指令。试想下,如果我们在buffer里面包含我们自己想要执行的代码,然后通过返回地址让程序跳转到系统战力执行,我们岂不是可以让进程取执行本来没有的代码,直接去做其他事情了!“ 不得不说,结合书中示意图,真的很简洁易懂… 本次实验目的,我们准备向password.txt文件址入二进制的机器码,并用这段机器码调用Windows的一个API函数MessageBoxA,最终在桌面上弹出一个消息框并
分类: 其他 发布时间: 03-19 22:11 阅读次数: 0

读书笔记5:0day安全:软件漏洞分析技术

对于上个实验出现的指令变动的情况,虽说可以通过抬高栈顶保护shellcode 解决,不过招式不怕多嘛,这次的实验我们使用另外一个套路… 套路的一些简要介绍: 漏洞点位于某个动态链接库,且程序运行过程中被动态装载,此时栈中情况将会是变化的,也就是说之前从调试器中直接抄出来的shellcode起始地址下次就变了。因此,要编写出比较通用的shellcode就必须找到一个让程序自动定位到shellcode的起始地址。(这里假设我们的buffer位置是浮动的,因此,每次想执行跳转回buffer的起始位置
分类: 其他 发布时间: 03-19 22:11 阅读次数: 0

面试python岗位,提问:连接字符串用join还是+,怎么回答?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012365828/article/details/88542633 本篇要讲的是,连接字符串的时候可以用join也可以用+,但这两者有没有区别呢? 关注公众号:「Python专栏」,后台回复「腾讯架构资源1」,获取由腾讯架构师整理的大数据学习资源包全套!!! 我们先来看一下用join和+连接字符串的例子 str1 = " ".join(["hello", "world"]) str2 = "h
分类: 其他 发布时间: 03-19 22:11 阅读次数: 0

和小姐姐面试python,是种什么体验?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012365828/article/details/88590204 这次给大家讲讲我2年前去爱奇艺面试高级运维开发岗位的经历,希望对大家带来一些帮助。 公众号「Python专栏」后台回复:自动化运维平台,获取整套自动化运维平台的源代码 聊骚阶段 嗲妹妹:你好,我是爱奇艺的HR,我们正在招聘运维开发岗位,请问您最近有在看工作机会吗? 我:(这声音也太酥了吧我去……)嗯,你好,信号不太好,能在说下
分类: 其他 发布时间: 03-19 22:11 阅读次数: 0

一位90后的自述:如何从年薪3w到30w

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012365828/article/details/88136002 作者介绍:90后生人/男/二本本科/世界500强技术主管 1.引言 上海小胖,曾就职于pwc(普华永道)担任TechLeader,带领DS(Data Scientist)团队完成全美医疗保险大数据项目的一期开发。「红色警戒:复兴」的联合创始人,MongoDB Professional 中国第15位获得者,MongoDB大中华区
分类: 其他 发布时间: 03-19 22:11 阅读次数: 0

整除和余数

版权声明:Edited by I Hsien https://blog.csdn.net/POTASSIUM711/article/details/88047714 Charpter1.1 整除和余数 余数的定义 对于整数a,b,存在整数q,r,使得 a=qb+r a=qb+r a=qb+r 一般的, r∈[0,b)r \in[0,b)r∈[0,b) .虽然理论上一个r对应一个q,但是在后面的绝大多数情况下都是取这样一个标准区间. 整除 当r=0时,记作 b∣ab|ab∣a,即b(可)整除a.
分类: 其他 发布时间: 03-19 22:11 阅读次数: 0

欧几里得辗转相除法和裴蜀等式

版权声明:Edited by I Hsien https://blog.csdn.net/POTASSIUM711/article/details/88074920 欧几里得辗转相除法1 最大公因数的定义略,先 来看上一篇文章中提到的"abbr"定理的推论. 设a,b为不全为0的整数,则(a,b)=(a+bq,b)=(a,b+aq). 设 a,b为不全为0的整数,则\\ (a,b)=(a+bq,b)=(a,b+aq). 设a,b为不全为0的整数,则(a,b)=(a+bq,b)=(a,b+aq)
分类: 其他 发布时间: 03-19 22:11 阅读次数: 0

TOOL 一个裴蜀定理解析器

版权声明:Edited by I Hsien https://blog.csdn.net/POTASSIUM711/article/details/88080645 刚才随便写了一个裴蜀定理解析器,主要功能有: 计算两个整数的最大公因数 抛出非法输入(两个都是0) 计算裴蜀方程的解( ta+sb=gcd(a,b)ta+sb=gcd(a,b)ta+sb=gcd(a,b)) 输出过程信息以供调试 用C写的,很基本,也没有什么乱七八糟的功能. 就是做作业懒得手算. 源码见https://github
分类: 其他 发布时间: 03-19 22:11 阅读次数: 0

二元一次不定方程的整数解

版权声明:Edited by I Hsien https://blog.csdn.net/POTASSIUM711/article/details/88096526 先来看看一个典型的二元一次不定方程: ax+by−c=0a,b,c∈zx,y∈z ax+by-c=0\\ a,b,c\in\mathbb{z}\\x,y\in\mathbb{z} ax+by−c=0a,b,c∈zx,y∈z 为了方便不妨限定 c⩾0c\geqslant0c⩾0. 下面给出一个是否有解的定理: theorem:gcd
分类: 其他 发布时间: 03-19 22:11 阅读次数: 0

欧拉定理和费马小定理

版权声明:Edited by I Hsien https://blog.csdn.net/POTASSIUM711/article/details/88243129 前置工作 在分析这两个定理之前,先引入几个重要的定义和定理: definition:所有对自然数m同余的自然数组成的集合称m的 完全剩余类.所有对自然数m同余的且余数和m互质的自然数组成的集合称m的 简化剩余类.在每个完全剩余类中任取一个,组成的集合称m的 完全剩余系.在每个简化剩余类中任取一个,组成的集合称m的 简化剩余系.{d
分类: 其他 发布时间: 03-19 22:11 阅读次数: 0

逻辑代数几个重要定理

版权声明:Edited by I Hsien https://blog.csdn.net/POTASSIUM711/article/details/88375326 写作业要用的一些逻辑代数定理,写在这备查备忘. 符号声明: +:或; ⋅\cdot⋅:与 aˉ\bar{a}aˉ :非 PART 1 公理 交换律 A⋅B =B⋅AA\cdot B\ =B\cdot AA⋅B =B⋅A 结合律 A+(B+C)=(A+B)+CA+(B+C)=(A+B)+CA+(B+C)=(A+B)+C A⋅(B⋅C
分类: 其他 发布时间: 03-19 22:11 阅读次数: 0

欧拉定理和费马定理的应用

版权声明:Edited by I Hsien https://blog.csdn.net/POTASSIUM711/article/details/88388982 回顾 在开始新的话题之前,先来回顾上一篇的欧拉定理和费马小定理: if gcd(a,m)=1,aφ(m)≡1(modm) if\ gcd(a,m)=1,a^{\varphi(m)}\equiv 1\pmod m\\ if gcd(a,m)=1,aφ(m)≡1(modm) if p为素数,ap≡a(modp) if\ p为素数,a^
分类: 其他 发布时间: 03-19 22:11 阅读次数: 0

中国剩余定理及其他

版权声明:Edited by I Hsien https://blog.csdn.net/POTASSIUM711/article/details/88594387 中国剩余定理研究的是不同模的剩余类的交集问题. 中国剩余定理 Theorem:对于同余式组{x≡b1(modm1)x≡b2(modm2)x≡b3(modm3)... ...x≡bs(modms)若m1,m2,...ms两两互质,对于M=∏i=1smi,有唯一解 x≡∑i=1sbi(Mmi)⋅[(Mmi)−1(modmi)](mod
分类: 其他 发布时间: 03-19 22:11 阅读次数: 0

[PHP in Leetcode 711] Jewels and Stones

版权声明:Edited by I Hsien https://blog.csdn.net/POTASSIUM711/article/details/88674410 开这个坑呢,主要是为了督促自己学习PHP,并且能尽早进入CTF的实战.虽然说PHP不算难(对于已经掌握一门语言的来说),但如果算法和函数都不熟悉的话啥也干不了. 题目 You’re given strings J representing the types of stones that are jewels, and S rep
分类: 其他 发布时间: 03-19 22:11 阅读次数: 0