hex

堆重启_uaf_hacknote

ぃ、小莉子 提交于 2020-11-09 15:26:12
参考链接 http://blog.eonew.cn/archives/490 https://blog.csdn.net/weixin_44864859/article/details/107181869 这里记录下经典的含有后门的UAF漏洞程序。 //hacknote 最简单的堆题目 libc 2.23 以及 含后门的UAF漏洞程序 //hacknote先看第一个含有后门的UAF漏洞程序: 查看文件相关属性及开启保护 32位elf程序,没有去符号。// 给源代码会更香。 只开启了NX保护。 $ file hacknote_backdoor hacknote_backdoor: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=44ee75c492628b3691cdcdb07759e9bbe551644a, not stripped $ checksec hacknote_backdoor [*] Arch: i386-32-little RELRO: Partial RELRO Stack: No canary found NX: NX

用单片机对数码管进行显示以及keil uvision的使用

北慕城南 提交于 2020-11-08 09:22:08
keil uvision的简单运用——数码管的实现 单片机的使用 51单片机入门 相信很多人对51单片机并不陌生,而且有很多人可能在很久之前就接触并且学习51单片机,51单片机能够存在这么长时间,并且始终被人们所利用和提起就一定有他的道理存在,而现实生活中的51单片机就是以一个“万金油”的角色存在,下面我们就简单的说一下51单片机实现数码管的操作。文中我的单片机型号是STC12C5A16AD 如何建立一个keil文件 1、首先我们需要安装一个keil uvision的软件,相信大家对keil并不陌生,我们这里使用的keil uvision 软件,keil是一个公司的名字,在2005年被arm公司收购,uvision是由keil公司开发的集成开发环境(IDE),可以进行代码编辑,文件管理,程序的编译调试等。具体安装包可以在网上下载,也可以通过公众号<软件安装管家>中回复,keil uvision4(但是软件安装管家会经常性的维护,所以可能无法获得),所以后面附上了云盘地址:pan.baidu.com/s/1kCVxnp0HBD0516TQKL3I_Q;密码:x9a6. 2、建立空白.c文件夹。 2.1打开软件: 2.2建立新工程文件,如果已经汉化的话是打开工程,未汉化是打开project栏。下拉栏中的新建工程或者 new project。 命名为sum

TRON智能钱包PHP开发包【零TRX归集】

。_饼干妹妹 提交于 2020-11-06 15:01:31
TronSmartWallet 开发包适用于平台方高效完成对用户或订单地址上的Trx/TRC20代币的归集工作,无需向用户或订单地址注入Trx即可完成Trx/TRC20代币的归集。官方下载地址: TronSmartWallet PHP开发包 。 1、开发包概述 TronSmartWallet开发包的主要特点如下: 真正的平台型非托管钱包,平台无需管理大量用户地址的密钥并且没有安全性的损失 无需向用户地址注入Trx即可完成Trx/TRC20代币的归集,流程更简单,效率更高 支持在单一交易内完成多个用户地址的归集 TronSmartWallet运行于PHP 7.1+环境下,主要类以及其关系如下图所示: TronSmartWallet的主要代码文件清单见官网说明: http://sc.hubwiz.com/codebag/tron-smartwallet/ 。 2、使用示例代码 2.1 部署工厂合约 TronSmartWallet开发包利用工厂合约SmartWalletFacotry管理用户地址的生成与归集。因此首先需要部署工厂合约。 示例代码 demo/deploy-contracts.php 展示了如何部署SmartWalletFactory合约以及一个用于演示的TRC20代币合约。执行如下命令运行示例代码: php deploy-contracts.php 运行结果如下:

ubuntu下编译烧录nordic芯片

大兔子大兔子 提交于 2020-11-04 04:10:55
#ubuntu下编译烧录nordic芯片 具体参考官方说明: http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.meshsdk.v2.0.1%2Fmd_doc_getting_started_getting_started.html ##一 操作环境 目标系统: ubuntu16.4 开发板: PCA10040 nordic52832 ##二 环境安装 ###安装 nRF5x Command Line Tools 工具: 1,下载 https://www.nordicsemi.com/eng/nordic/download_resource/58852/27/55084982/94917 2,解压 /usr/nRF5x-Command-Line-Tools_9_7_2_Linux-x86_64/ 3, 设置环境变量: $ sudo gedit /etc/profile 把path添加到文件中 export PATH=/usr/nRF5x-Command-Line-Tools_9_7_2_Linux-x86_64/mergehex:$PATH export PATH=/usr/nRF5x-Command-Line-Tools_9_7_2_Linux-x86_64/nrfjprog:

MySQL自学2018/05/02-数据类型

 ̄綄美尐妖づ 提交于 2020-11-03 11:14:06
一、数值类型 1. 严格数值类型(INTEGER=INT、SMALLINT、DECIMAL=DEC、NUMERIC) int(5):表示当数值宽度小于5位的时候在数字前面填满宽度, 默认为int(11),一般配合zerofill使用 unsigned:在字段里面保存非负数。取值范围:下限取0,上限取原值的2倍。 1 alter table t1 modify id1 int ( 5 ) zerofill; 2. 近似数值数据类型(FLOAT、REAL、DOUBLE、PRECISION) 对于BIT类型,直接使用select命令不会看到结果,可以用bin()(显示为二进制格式)或者hex()(显示为十六进制格式)进行读取 1 select bin(id), hex(id) from t2; 二、日期时间类型 DATE:通常用来表示年月日 DATATIME:通常用来表示年月日时分秒 TIME:只表示时分秒 TIMESTAMP:需要经常插入或者更新日期为当前系统时间的情况。TIMESTAMP值返回后显示为“YYYY-MM-DD HH:MM:SS”格式的字符串。如果想获得数字值,应在TIMESTAMP列添加“+0” YEAR:只表示年份 每种日期时间类型都有一个有效值范围,超出这个范围,系统会进行错误提示,并将以零值来进行储存。 1 create table t(d data, t

C++学习笔记第一天

无人久伴 提交于 2020-11-03 09:03:40
第一节 C中: const in a = int const a int *const p const int *const p char *p =malloc(100); //(void *) enum day { Mon,TUE } enum DAY today today = 100; int a,b =10; a=b=100; (a=b)=100;//表达式不可以被赋值 C++ 中: 1.类型检查更严格 const in a =0; 必须初始化 char *p =(char*)malloc(100); 2.增加了一个BOOL类型(ture/false),其实就是一个枚举类型 3.C++中的枚举类型是真正意义的枚举类型,只能取里面的内容 enum BOOL { FALSE,TURE } BOOL a = FALSE;(只能用枚举类型BOOL里面的值) 4.表达式 (a=b)=100;//表达式可以被赋值 第二节 cin cout 类对象 。scanf sprintf 相同的功能,函数 char name[30]; scanf、gets, cin(不安全) fgets(name,30,stdin)//自己控制读取长度(安全) string name; cin>>name(安全) cin>>流输入运算符 输出控制 int a =12345; cout <<setw(8)<<a<

C++ 实现反射机制

纵饮孤独 提交于 2020-10-29 13:30:56
C++ 实现反射机制 C++ 实现反射机制 一.前言: JAVA有着一个非常突出的动态相关机制:Reflection,用在Java身上指的是我们可以于运行时加载、探知、使用编译期间完全未知的classes。换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实体、或对其fields设值、或唤起其methods。然而C ++是不支持反射机制,虽然C++有RTTI(运行时类型识别)。但是想要实现C++ 对象序列化,序列化就是存储到磁盘上,将对象变成一定格式的二进制编码,然后要用的时候再将保存在磁盘上的二进制编码转化成一个内存中的对象,这个过程中总是需要有一个指示来告诉编译器要生成什么样的对象,最简单的方式当然就是类名了,例如:将一个ClassXXX对象存储到磁盘上,再从磁盘读取的时候让编译器根据“ClassXXX”名称来new一个对象。 ClassT * obj = FactoryCreate( " ClassT " ); 类似于以上的语法,虽然C ++没有自带的语法可以实现,但是我们可以自己通过其他方法来实现。(由于本人能力有限,所以该篇博客只是讲解如何简单的实现这个反射机制,而对C++ 中拥有这个反射机制是否有必要不做任何讨论。当然,如果博客中有什么地方说的有错误还望大家可以在下面评论指出谢谢) 二.实现: 1

Python基础(十二)

梦想的初衷 提交于 2020-10-29 01:24:52
今日主要内容 推导式 生成器表达式 lambda匿名函数 内置函数介绍 一、推导式 (一)列表推导式 先来看一段代码 建立一个空列表,向空列表中添加元素 lst = list() for i in range(5): lst.append(i) print(lst) 运行结果: [0, 1, 2, 3, 4] 利用列表推导式,效果一样 lst = [i for i in range(5)] print(lst) 运行结果: [0, 1, 2, 3, 4] 循环模式: 格式: [元素 for 元素 in 可迭代对象] 执行流程:每次for循环将元素添加到列表中 lst = [i for i in range(5)] print(lst) 运行结果: [0, 1, 2, 3, 4] 筛选模式 筛选模式: 格式: [元素 for 变量 in 可迭代对象 if 条件] 执行流程:执行for循环并判断元素是否符合条件,将符合条件的元素添加到列表中 lst = [i for i in range(5) if i > 2] print(lst) 运行结果: [3, 4] (二)字典推导式 同理,先来看一段代码 建立一个空字典,向字典中添加键值对 dic = dict() for i in range(1, 5): dic[f"k{i}"] = i print(dic) 运行结果: {'k1':

Python函数合集:68个内置函数请收好,直接食用

China☆狼群 提交于 2020-10-29 01:02:30
内置函数就是python给你提供的, 拿来直接用的函数,比如print.,input等。截止到python版本3.6.2 python一共提供了68个内置函数。 #68个内置函数 # abs() dict() help() min() setattr() # all() dir() hex() next() slice() # any() divmod() id() object() sorted() # ascii() enumerate() input() oct() staticmethod() # bin() eval() int() open() str() # bool() exec() isinstance() ord() sum() # bytearray() filter() issubclass() pow() super() # bytes() float() iter() print() tuple() # callable() format() len() property() type() # chr() frozenset() list() range() vars() # classmethod() getattr() locals() repr() zip() # compile() globals() map() reversed() _