地址

at24C16系列芯片a8 a9和a10对应存储阵列地址字地址 是神马意思?

为君一笑 提交于 2019-12-31 17:38:17
于是我拿24c08来讲一下,从pdf上我们了解到在IIC总线最多有2 个atc08,这正是A2 的作用,A2=0或1分别对应着器件1和器件2. 那24c08里的a9和a8是什么用呢?看下面的这段英文(从英文的 paf下摘下来的),你会明白了。 The 8K EEPROM only uses the A2 device address bit with the next 2 bits being formemory page addressing. The A2 bit must compare to its corresponding hard-wiredinput pin. The A1 and A0 pins are no connect. a9和a8是进行页选择的,a9和a8有4种组合,那就说有4页,每页有8kbits/4=2kbits=2000/8bytes=256bytes 每页有256bytes,需要a9和a8来选择读写哪一页。 明白了吗? 1K 地址空间 ,由外部 A2 和内部 存储阵列 A9A8决定地址,例如你的 A2 固定接地,那么1K的存储空间分成4块,器件写地址分别是#0A0H,#0 A2 H,#0A4H,#0A6H,器件读地址是#0A1H,#0A3H,#0A5H,#0A7H,每个地址都对应256个字节。正好是8位地址00H--FFH

PESpin加密壳分析

三世轮回 提交于 2019-12-31 01:37:30
转载自 https://www.cnblogs.com/KIDofot/p/8641385.html KIDofot 大神 手工脱壳之 PESpin加密壳【SHE链硬件反调试】【IAT重定向】【混淆+花指令】 阅读目录(Content) 一、工具及壳介绍 二、脱壳之寻找OEP 1、硬件断点失效 2、采用API断点+单步跟踪 3、确定目标 3.1、API Address 3.2、Put EXE IAT 3.3、IAT加密 3.4、IAT重定向 3.5、IAT重定向解决方案: 3.6、OEP 3.7、记录分支 四、快速定位OEP 五、 SEH异常链反调试 六、OD脚本及修复 七、脱壳成功 八、混淆花指令 回到顶部 一、工具及壳介绍 使用工具:Ollydbg,PEID,ImportREC,LoadPE,IDA,Universal Import Fixer,OllySubScript 此篇是加密壳的第二篇,更详细的步骤和思考,请查看第一篇:手工脱壳之 未知加密壳 【IAT加密+混淆+花指令】 PESpin壳: 回到顶部 二、脱壳之寻找OEP 1、硬件断点失效 尝试ESP定律,但硬件断点未断下。 (原因其实是壳做了反调试,后面部分介绍) 2、采用API断点+单步跟踪 API下断: 壳导入了LoadLibrary 和 GetProAddress,可以从API下手。 按照经验来说,跟踪GDI32

操作系统概述(二)

霸气de小男生 提交于 2019-12-29 23:09:44
操作系统内存管理 内存管理包括内存管理和虚拟内存管理。 内存管理包括程序装入等概念、交换技术、连续分配管理方式和非连续分配管理方式(分页、分段、段页式)。 虚拟内存管理包括虚拟内存概念、请求分页管理方式、页面置换算法、页面分配策略、工作集。 我们先来了解一下什么是内存: 内存是计算机系统的一个重要组成部分,只有在内存中的程序才能被CPU所执行,而且CPU运行时所需要的数据和程序运行空间都是从内存中获取,所以内存性能的好坏直接影响我们计算机性能的好坏. 讲到内存我们可以讲一下关于存储器的分类: 存储器按照功能分配可以分为高速缓冲存储器(cache),主存储器(内存),外存储器(外存): 高速缓冲存储器(cache):cache又分为一级cache和二级cache,一级cache是位于CPU内部的存储器,它负责存储并向CPU传递需要的数据和指令,二级cache位于CPU和主存储器(DRAM)之间,二级的作用就是存储那些CPU处理时需要用到、一级缓存又无法存储的数据。CPU读取数据时,先从一级cache中寻找,找不到再从二级cache中寻找,有时还需要从三级cache中寻找.它们的共同点是读取速度都比CPU慢比内存快,内存容量小,价格高. 缓存的出现主要是为了解决CPU运算速度与内存 读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多

静态路由简单案例

試著忘記壹切 提交于 2019-12-29 14:11:31
操作平台:GNS3 静态路由简介 静态路由一种路由的方式,路由项为手动配置,而非动态决定。与动态路由不同,静态路由是固定的,不会改变,即使网络状况已经改变或是重新被组态。一般来说,静态路由是由网络管理员逐项加入路由表。 实验过程 配置二个静态路由测试相同 拖二台路由器,二台vpc至操作界面 连接vpc和路由器 标注路由器和pc机地址 点击开启,在选项卡中配置路由器和pc机地址 配置pc1地址 配置路由器RI地址 ![]( https://s1.51cto.com/images/blog/201908/06/68ef20e99e4b8e2df78f5a0194a0db70.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk =![] 配置静态路由 配置成功 配置路由器R2地址 配置静态路由 配置pc2地址 配置成功 pc1 连接pc2 连接成功 配置一个静态录路由 一个默认路由测试相通 断开R2 重启,清空数据 此时不同 R2配置默认路由 测试是否相通 来源: 51CTO 作者: 友引町 链接: https://blog.51cto.com/14449536/2427253

从两句汇编认识运行时地址与链接地址

♀尐吖头ヾ 提交于 2019-12-29 01:49:02
首先看两行汇编代码: 1: adr r0, _start 2: ldr r1, =_start /*--> */ /*--> */   同样是加载一个标号的地址值,adr和ldr有什么区别呢?注意这里的ldr不是命令ldr,而是伪指令ldr,若想区分它们请参看我的一篇博文《 adr adrl ldr mov总结整理 》。 要区分它们,就需要引入4个概念: 1、运行时地址起始位置:它芯片公司指定的一开始运行代码的位置。这个位置和芯片本身有关,不可改动。对于2440来说一般就是片内SRAM的首地址0x0;对于210来说就是片内SRAM中的地址0xD0020010。 2、链接地址起始位置:它是由程序员指定的,或者说是有链接脚本设定。是可以变动的。但是这个位置在程序链接之后,就会确定下来。 3、运行时地址:就在从运行时地址起始位置(包括起始位置)往后排都是运行时地址。 4、链接地址:就是从链接地址起始位置(包括起始位置)往后排都是链接地址。      说明了以上4点内容之后,我需要铺垫一些前提内容,adr r0, _start ; ldr r1, =_start 这两句代码是从朱老师的一个实验程序里直接截取出来,这实验的目的是演示重定位。之后这段代码我会贴到文章的最后。因为开发板是210的板子所以运行时地址是从0xd0020010开始的,链接地址设置为0xd0024000开始的。

内存管理2

北慕城南 提交于 2019-12-28 21:24:25
 可能产生外部碎片的是段式和可变分区 可能参数内部碎片的是页式段页式 固定分区 在虚拟存储方案中 常用的页面调入策略有两种请求调页和预调页 移动技术可以解决外部碎片不能解决内部碎片 页面置换策略中先进先出页面置换算法(FIFO)总是选择最先换入的页面调出 最近不常用页面置换算法(LFU)是根据页面的被调用次数来选择的 这种方法总数选择被访问次数最少的页面调出 理想页面置换算法(OPT)总数选用以后不再需要或最长时间以后才会用到的页面调出 最近最少使用页面置换算法(LRU)总是选用最长时间内来访问过的页面调出 页式存储管理方案中 将内存逻辑地址分为页号和地址两个部分 一个字节八位 三个字节24位所以地址长度为24位由于页面地址占10位所以页号占用14位 2^14=16384即进程最多有16384个页面 在某页式存储管理方案中 页面大小2kb=2^11 进程地址空间2^29=512MB 页号就占29-11=18 2^18个 固定分配局部地区置换的分配方案是基于进程的类型 为每一进程分配固定的页数的内存空间 在整个运行期间 都不再改变 采用该策略时 如果进程在运行中出现缺页 则只能从该进程的N个页面选择一个换出 然后再进入一页 以保证分配给该进程的内存空间不变 可变分区进程运行中 其内存页面可以动态增长或者减少 为每一个进程分配一定数目的内存页面 全部置换是运行的过程当其页面不够时

操作系统 庞丽萍 第七章

ぐ巨炮叔叔 提交于 2019-12-28 21:23:14
1. 存储管理的功能与目的是什么? 主要包括以下四个方面:(1)映射逻辑地址到物理主存地址;(2)在多用户之间分配物理主存;(3)对各个用户区的信息提供保护措施;(4)扩充逻辑主存区。 2.物理地址 VS 逻辑地址 把内存分成若干个大小相等的单元,每个单元给个编号,就是物理地址,又称为绝对地址或者实地址; 逻辑地址是用户编程序时所用的地址,又称为程序地址或者虚地址。 为了支持多道程序运行,方便用户使用;使得多用户程序共享主存, 必须要解决主存区域如何分配、各个区域内信息如何保护等问题。如果直接以物理地址提交给用户使用,这对用户来说将是十分困难的事情,因此必须要由操作系统实现逻辑地址到物理地址的转换。 3.地址变换可以由软件实现,但是软件实现会花费较多的CPU时间。 4.所谓存储保护,就是指计算机在多用户使用或者多道程序运行的情况下,为了互不影响,必须由硬件(软件配合)保证每道程序只能在给定的存储区域内活动。 分区分配方法中,主要采用上下界保护。 5. 放置策略中: 最佳适应算法 VS 首次匹配算法 最佳适应算法:将输入作业放入到主存中与他所需要大小最接近的空闲区中,这样剩下的未用空间最小。 此时,空闲区队列是按空闲区大小递增的顺序链接在一起的。 起主要缺点是:空闲区一般不可能正好和要求的大小相等,因此将其分割成两部分后,往往会使得剩下的空闲区非常小,以至于无法使用

MAC地址表、ARP缓存表以及路由表

此生再无相见时 提交于 2019-12-28 13:36:58
说下这几个表的主要内容: 路由表: 目的地址、网络掩码、下一条ip地址、出接口、优先级、cost路由开销 arp表: ip地址、对应的mac地址、ip地址类型 arp -a 命令用来查看计算机本地arp表。 第一列:表示ip地址列表情况。 第二列:表示ip地址对应的mac地址。 第三列:表示ip地址类型,是动态ip还是静态ip。 mac表: mac地址、出端口 一:MAC地址表详解 说到MAC地址表,就不得不说一下交换机的工作原理了,因为交换机是根据MAC地址表转发数据帧的。在交换机中有一张记录着局域网主机MAC地址与交换机接口的对应关系的表,交换机就是根据这张表负责将数据帧传输到指定的主机上的。 交换机的工作原理 交换机在接收到数据帧以后,首先、会记录数据帧中的源MAC地址和对应的接口到MAC表中,接着、会检查自己的MAC表中是否有数据帧中目标MAC地址的信息,如果有则会根据MAC表中记录的对应接口将数据帧发送出去(也就是单播),如果没有,则会将该数据帧从非接受接口发送出去(也就是广播)。 如下图:详细讲解交换机传输数据帧的过程 1)主机A会将一个源MAC地址为自己,目标MAC地址为主机B的数据帧发送给交换机。 2)交换机收到此数据帧后,首先将数据帧中的源MAC地址和对应的接口(接口为f 0/1) 记录到MAC地址表中。 3

[linux内存]linux内存学习(一)

一曲冷凌霜 提交于 2019-12-28 13:21:27
1,内存中各个地址范围的含义 按照地址范围由低到高的顺序:0-3G的地址范围: 代码段: 代码的可执行文件,一般为只读并且是共享的。(RO code/data) 数据段 :存已经被初始化的全局变量(RW data) static char *user="jiangsu" BSS段: 存一些未被初始化的全局变量(ZI data) static char*user 堆: maoolc()或者new()申请的段,给程序员使用,地址向高地址范围增长(通过brk()函数扩展) mmap区间: (一些动态库文件) 栈: 函数参数等,由系统自动分配释放,地址向低地址范围增长(可以通过ulimit -s查看每个进程最大使用的栈的大小) 补充:正常代码段都不是从用户空间0地址开始的,比如arm linux嵌入式设备从0x8000(32K)开始的,前面的32k可以用来存储一些error code,如果一个函数返回一个地址,但是该地址大小小于0x8000,那么则认为此函数发生 了错误~ 正常stack和kernel space之间有一段空白,BSS和heap之间也有一段空白,heap和mmp之间也有一段空白,这个称为ASLR技术,防止地址被其他人知道而遭到攻击 3-4G的空间是内核空间,用户空间的代码不能访问到。 malloc函数详解~ malloc只是一个库函数,在不同的平台对malloc有不同的实现

@Path与 @RequestMapping(最重要)

倾然丶 夕夏残阳落幕 提交于 2019-12-28 02:59:43
@RequestMapping:映射请求地址。 利用 RequestMapping 的 value 、 method 、 params 、 header 实现;同时利用@ RequestParam 对请求参数添加限制条件。它可用于类或方法上,作用是处理请求地址的相关映射。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。 该注解有六个属性,分别为value, method,consumes,produces,params,headers。 value: 指定请求的实际地址。 method:指定请求的method类型,如:GET、POST等类型。 consumes: 指定处理请求的提交内容类型(Content-Type)也就是前台传递的类型,例如application/json, text/html等。 produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回。 params:指定request中必须包含某些参数值是,才让该方法处理。 headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。 @Controller @RequestMapping(value = "/login") public class LoginController { @RequestMapping