地址

重定位

守給你的承諾、 提交于 2019-12-03 13:40:37
一、链接地址   程序编译时指定的地址,通过-Ttext参数指定的地址,它是理论上程序在运行时所处的地址。 二、加载地址   程序在运行时实际所处理的地址。    注意:链接地址与加载地址不能保障一定一样。 三、位置有关代码   如果程序的链接地址与加载地址不符,程序就无法运行,或运行错误中的代码叫位置有关代码。 四、位置无关代码   如果程序的链接地址与加载地址不符,程序依然能够i有正确运行,这种代码叫位置无关代码。   可以简单的认为使用了BL的代码叫位置有关代码,而没有使用BL的叫位置无关代码。 五、再论S5PV210的启动过程   1.iROM中的固定程序会从SD中拷贝16~96KB的程序先进行环境初始化(设置时钟、初始化内存、开看门狗)。   2.然后再把剩余的程序从SD卡中拷贝到SDRAM中。   3.把开发板上的所有资源都初始化好,为OS的运行做好准备。   4.拷贝OS到SRAM中,启动OS。 六、什么是重定位   uboot为了兼容大多数CPU并不会这样,而先把uboot的前96KB拷贝到SRAM中,然后初始化,再把完整的uboot拷贝到SDRAM中。   因此uboot的前96KB的程序就会在不同的位置运行两次,所以一定会出现链接地址与加载地址不符的情况。   具体的做法是先把uboot拷贝到SRAM中只运行少量的位置无关代码,然后再把程序拷贝到正确位置

开源微信小程序商城测评

北城以北 提交于 2019-12-03 11:15:16
1. Java版 1) 微同商城 减少重复造轮子,开源微信小程序商城 。快速搭建一个属于自己的微信小程序商城。 官网地址: https://fly2you.cn 开源地址: 2)litemall 2. PHP版 1) 来客推电商 精致电商,来客, [ 微信 + 支付宝 + 百度 + 头条 ] 小程序 + APP + 公众号 + PC + H5,注重界面美感与用户体验,打造独特电商系统生态圈,不可多得的二开神器。 【PHP商城系统 分销商城 多用户商城 Saas O2O商城 B2B2C】 官网地址: http://www.laiketui.com 开源地址: https://gitee.com/laiketui/open 后台体验地址: http://www.laiketui.com/action/ 小程序体验地址: 2) CRMEB打通版 微信公众号商城、小程序商城、H5商城数据同步,带积分、优惠券、秒杀、会员等级、分销等功能,前后端全部开源,更是一套方便二次开发的框架。v3.0采用TP6框架。 官网地址:http://www.crmeb.com 开源地址: https://gitee.com/ZhongBangKeJi/CRMEB https://gitee.com/ZhongBangKeJi/CRMEB-H5-v3.0 https://gitee.com

IP地址知识

为君一笑 提交于 2019-12-03 11:01:34
一个IP地址技术上是与一个接口相关联的,而不是与包括该接口的主机或路由器相关联。 每个IP地址有32比特(等价于4字节),因此总共有2的32次方个地址的可能。 A类地址:8bit net-id + 24bit host-id) B类地址:16bit net-id + 16bit host-id C类地址:24bit net-id + 8bit host-id D类地址:1110+多播地址 E类地址:1110+保留为今后使用 A,B,C类编址被称为分类编址。 一个C类(/24)仅能容纳2 8 -2=254台主机(其中两个地址预留用于特殊用途)。 一个B类(/16)能容纳多达65534台主机。 来源: https://www.cnblogs.com/ht1210/p/11792346.html

红帽杯pwn1+Xman level3 wp

穿精又带淫゛_ 提交于 2019-12-03 10:19:07
1 ROP 这两道题的核心思想是ROP,ROP(返回导向编程),通俗的说,就是溢出后使用返回函数跳转到目标。一般来说,ROP应用在不能直接shellcode的情况下(NX开启时shellcode不能写入内存),具体了解ROP见 wiki 。 2 pwn1分析 检查程序:开启NX保护,不能写shellcode;32位linux 看代码:发现一个scanf,输入写在内存,考虑通过scanf控制;发现system函数,可以利用; 编写ROP链:scanf有两个参数和一个返回值,因此ROP结构为【scanf地址】+【return】+【参数】+【参数】,return应该是system,system有一个参数和一个返回值,system结构为【system地址】+【return】+【参数】,我们可以用scanf写入一个“/bin/sh",然后返回system函数,system的参数为”/bin/sh“ tips:scanf有两个参数,我们本应pop pop ret,但如果我们把return直接写成system,我们”惊喜的“发现这上面其实就完美的对应了return+参数。。。 因此,rop结构为:【scanf地址】+【system地址】+【%s地址】+【参数】 搞定!接下来我们看一个特殊的 3 Xman level3 题目描述 libc!libc!这次没有system,你能帮菜鸡解决这个难题么?

三种方法告诉你项目超过255个摄像机怎么设置IP?为什么IP地址通常以192.168开头?

断了今生、忘了曾经 提交于 2019-12-03 09:50:42
我们做弱电的,与ip地址接触最多,无论是弱电的哪方面,都需要跟ip地址打交道,通常我们也会经常听到公网、内网?那什么是公网ip地址呢?什么是私网ip地址呢?为什么我们常见到的ip地址以192.168开头呢? 还有就是一个网段只能容纳254个摄像机,但是我现在项目比较大,都有300多个摄像机了,该咋分配IP地址呢? 我们今天统统来了解一下。 首先关于内、外网的定义:内、外网是相对于防火墙而言的,在防火墙内部叫做内网,反之就是外网。在一定程度上外网等同于公网,内网等同于私网。 一、特殊的IP地址 1、0.0.0.0 严格说来,这个奇葩的地址0.0.0.0已经不是一个真正意义上的IP地址了。它表示的是这样一个集合:也就是说;所有不清楚的主机和目的网络。这里的“不清楚”是指在本机的路由表里没有特定条目指明如何到达。对本机来说,它就是一个“收容所”,所有不认识的“三无”人员,一律送进去。如果你在网络设置中设置了缺省网关,那么计算机系统会自动产生一个目的地址为0.0.0.0的缺省路由。 2、255.255.255.255 限制广播地址 对本机来说,这个地址指本网段内(同一广播域)的所有主机。 然而它的意思很明确,使用人类语言来说意思就是“这里的所有计算机都注意了”这个地址不能被路由器所转发。 3、127.0.0.1 本机地址 主要用于测试。用汉语表示,就是“我自己”。在Windows系统中

MAC地址表、ARP缓存表、路由表及交换机、路由器基本原理

无人久伴 提交于 2019-12-03 06:30:22
  在网上找到了这篇讲述MAC地址,ARP协议和路由表的文章,如获至宝。一篇文章把组网中的相关概念讲的明明白白。   原文是发布在51cto博客上,但不知道为什么点进去却是404。让我没想到的是这个技术论坛上有不少原创的好文章。   好了下面是文章正文: MAC地址表 说到MAC地址表,就不得不说一下交换机的工作原理了,因为交换机是根据MAC地址表转发数据帧的。在交换机中有一张记录着局域网主机MAC地址与交换机接口的对应关系的表,交换机就是根据这张表负责将数据帧传输到指定的主机上的。 交换机的工作原理 交换机在接收到数据帧以后,首先、会记录数据帧中的源MAC地址和对应的接口到MAC表中,接着、会检查自己的MAC表中是否有数据帧中目标MAC地址的信息,如果有则会根据MAC表中记录的对应接口将数据帧发送出去(也就是单播),如果没有,则会将该数据帧从非接受接口发送出去(也就是广播)。 如下图:详细讲解交换机传输数据帧的过程 1) 主机A会将一个源MAC地址为自己,目标MAC地址为主机B的数据帧发送给交换机。 2) 交换机收到此数据帧后,首先将数据帧中的源MAC地址和对应的接口(接口为f 0/1) 记录到MAC地址表中。 3) 然后交换机会检查自己的MAC地址表中是否有数据帧中的目标MAC地址的信息,如果有,则从MAC地址表中记录的接口发送出去,如果没有

【操作系统之十】内存分页管理与swap

拜拜、爱过 提交于 2019-12-03 04:54:16
一、虚拟内存 电脑里内存分内存条(这里我们叫物理内存)和硬盘,内存条保存程序运行时数据,硬盘持久保存数据。那么虚拟内存是什么? 程序运行会启动一个进程,进程里有程序段、全局数据、栈和堆,这些都会加载到内存里,每一部分都有对应的内存地址,进程就是一直在处理这些地址中数据。 然而在Linux下,进程不能直接读写内存地址。 进程中能访问的地址,只能是虚拟内存地址(virtual memory address)。 操作系统会把虚拟内存地址翻译成真实的内存地址。 这种内存管理方式,称为虚拟内存(virtual memory)。 特点 1、虚拟内存地址和物理内存地址类似,都是为数据提供位置索引; 2、虚拟内存地址和物理内存地址通过映射关系来关联; 3、不同进程都有自己的一套虚拟内存地址,用来给自己的进程空间编号; 4、进程的虚拟内存地址相互独立。因此,两个进程空间可以有相同的虚拟内存地址,如0x10001000。 5、应用程序的数据读写操作的是虚拟地址,对物理内存地址一无所知。 6、程序中表达的内存地址,也都是虚拟内存地址。 7、进程对虚拟内存地址的操作,会被操作系统翻译成对某个物理内存地址的操作。 优势: 1、借助虚拟内存地址,操作系统可以保障进程空间的独立性,不同进程就不可能相互篡改对方的数据,进程出错的可能性就大为减少。 2、有了虚拟内存地址,内存共享也变得简单

thinkphp url生成

孤者浪人 提交于 2019-12-03 04:49:06
为了配合所使用的URL模式,我们需要能够动态的根据当前的URL设置生成对应的URL地址,为此,ThinkPHP内置提供了U方法,用于URL的动态生成,可以确保项目在移植过程中不受环境的影响。 定义规则 U方法的定义规则如下(方括号内参数根据实际应用决定): U('地址表达式',['参数'],['伪静态后缀'],['显示域名']) 地址表达式 地址表达式的格式定义如下: [模块/控制器/操作#锚点@域名]?参数 1 =值 1 &参数 2 =值 2. .. 如果不定义模块的话 就表示当前模块名称,下面是一些简单的例子: U ( 'User/add' ) // 生成User控制器的add操作的URL地址 U ( 'Blog/read?id=1' ) // 生成Blog控制器的read操作 并且id为1的URL地址 U ( 'Admin/User/select' ) // 生成Admin模块的User控制器的select操作的URL地址 参数 U方法的第二个参数支持数组和字符串两种定义方式,如果只是字符串方式的参数可以在第一个参数中定义,例如: U ( 'Blog/cate' , array ( 'cate_id' => 1 , 'status' => 1 )) U ( 'Blog/cate' , 'cate_id=1&status=1' ) U ( 'Blog/cate?cate_id

为客户端固定地址

拜拜、爱过 提交于 2019-12-03 04:44:54
1)TAP模式与TUN模式的区别 tap:俗称网桥模式、工作在二层 tun:俗称路由模式、工作在三层 区别如下所示: 1)tap可以直接使用route这样的路由表命令、但不能用于手机设备 2)tap一般结合路由表进行设定下一跳、而tun往往需要与iptables几何紧密来实现下一跳 3)tun可以用于手机设备、但不能使用route这样的路由表命令、同时也有很多限制、比如设置固定IP的时候 4)一个tun设备大多数时候、被用于基于IP协议的通讯、而一个tap设备允许完整的以太网帧通过openvpn隧道 ================================================================== 从上面这句话我们可以看到、实际应用还是使用tun模式较为靠谱 如果我们使用的为tap模式、则会广播大量数据包、随后带宽就会被沾满、而tun模式不会、这是两者的区别 还有一点非常重要、就是设置固定IP地址的时候、tap模式可以自由定义、但是tun模式有限制不行 如果我们采用的运行模式为tun、同时需要设置固定IP地址、那就要这样:172.16.1.1 172.16.1.2 这样固定的IP地址就是172.16.1.1、而后面的172.16.1.2据我观察、好像用于DHCP 如果后面我们需要在固定IP地址、那么1.3和1.4就不能用、只能用1.5和1.6

图解HTTP---第一章

筅森魡賤 提交于 2019-12-03 04:40:56
一、TCP/IP协议族 1、分层 2、与HTTP关系密切的IP、TCP、DNS (1)IP----Internet Protocol----网际协议 把各种数据包发送给对方。最重要的两个部分是:IP地址和MAC地址。 IP地址可以改变,MAC地址是计算机网卡所属的固定地址。IP间的通信依赖于MAC地址,ARP协议可以根据IP转换出对应的MAC地址 两个计算机不一定处于同一个局域网中,这个时候需要通信的话,就需要中转设备的MAC地址来搜索下一个中转设备。 (2)TCP协议---传输控制协议----提供字节流服务 在传输数据时,会将数据分割成报文段,能够保证数据传输的可靠性。 TCP的三次握手: (3)DNS协议 位于应用层,域名解析服务。进行域名和IP地址之间的转换。 3、各个协议的职责 来源: https://www.cnblogs.com/1220x/p/11778023.html