Got

十一月百度杯pwnme 详细wp

喜欢而已 提交于 2021-01-14 04:26:00
[TOC] #程序基本信息 可以看到开启了栈不可执行和got表不可写保护。 #程序溢出点 在函数sub_400AF7中,v8可以读入0x12C个字节,同时if判断中对v8进行字节截断,所以我们可以输入如0x101个字符,在保证能够溢出到返回地址的同时,v8字节截断后的0x01又能够通过if判断,然后通过函数sub_400A90进行溢出。 函数sub_400AD1中存在格式化字符串漏洞,我们可以通过这个漏洞泄露任意地址的内容,并通过DynELF类获得system函数的地址。 #整体思路 这个程序首先让你输入username跟password,然后提供三个选项 溢出漏洞位于选项2中,格式化漏洞在选项1中。 我们在输入完username和password后,首先进入选项2中,然后构造合适的payload,然后让程序调用选项1能够泄露任意地址的内容,从而可以通过DynELF类获取sytem地址。 然后让程序进入选项2中,构造能够溢出并绕过if的payload,通过ROP技术调用read函数输入/bin/sh并调用sytem函数完成system('/bin/sh')pwn掉程序。 #exp脚本 from pwn import * io = remote('106.75.2.53',10006) io.recvuntil('Input your username(max lenth:40):

C语言实验二——位运算

爷,独闯天下 提交于 2021-01-13 05:52:55
问题 线性反馈移位寄存器 Linear feedback shift register(LFSR),是指给定前一状态,将该输出的线性函数再用作输入的移位寄存器。异或运算是最常见的单比特线性函数:对寄存器的某些位进行异或操作后作为输入,再对寄存器中的各个比特进行整体移位。 赋给寄存器的初始值叫做“种子”,因为线性反馈移位寄存器的运算是确定的,所以,由寄存器所生成的数据流完全取决于寄存器当时或之前的状态。而且,由于寄存器状态是有限的,它最终肯定会是一个重复的循环。然而,通过本原多项式,线性反馈移位寄存器可以生成循环周期非常长的序列。 Fibonacci LFSRs 例如,16-位 Fibonacci LFSRR 其含义是:第11、13、14、16位上的值异或作为第一位,剩下的位后移。 影响下一个状态的比特位的叫做抽头,图中抽头序列为[16, 14, 13, 11]。 有结论:找到合适的抽头,能使得LFSR长度达到最大,最大长度的序列能通过 $2^n-1$ 个内部状态,不包括全零。 实现 模拟一下就好了 #include <stdio.h> #include <stdint.h> #include <stdlib.h> #include < string .h> void lfsr_calculate(uint16_t * reg) { uint16_t &x = * reg;

英语中的连词说明

橙三吉。 提交于 2021-01-06 11:30:10
连词 是一种虚词,用于连接单词、短语、从句或句子,在句子中不单独用作句子成分。 连词按其性质可分为并列连词和从属连词 。 并列连词 用于连接并列的单词、短语、从句或句子,如and, but, or, for等; 从属连词 主要引出名词性从句(主语从句、宾语从句、表语从句等)和状语从句(时间状语从句、条件状语从句、目的状语从句等),引出名词性从句的连词如that, whether等,引出状语从句的连词如when, because, since, if 等。 英语并列连词的用法 连词用途 连词 例子 表示转折关系的并列连词。 but, yet 等 Someone borrowed my pen, but I don’t remember who. 有人借了我的钢笔,但我不记得是谁了。 表示因果关系的并列连词。 for, so 等 The child had a bad cough, so his mother took him to the doctor. 这孩子咳得很利害,所以他妈妈带他去看医生。 表示并列关系的并列连词。 and , or , either…or , neither…nor Someone borrowed my pen, but I don’t remember who. 有人借了我的钢笔,但我不记得是谁了。 英语从属连词的用法 连词用途 连词 例子

guide, manual, tutorial之间的区别

≡放荡痞女 提交于 2021-01-05 10:24:53
总结:一般而言,guide表示用户指南,提供简要的信息;manual表示用户手册,提供较为完整深入的说明;tutorial表示教程,提供详细的说明,侧重于给没有经验的人一步一步进行详细的指导。实际情况中,guide和manual常混用。 以下译自网络,感谢解答问题的native speaker :P Difference between user guide and user manual - Difference All 用户指南(user guide)是为了向使用特定系统的方法提供帮助而编写的文档。用户指南主要涉及电子产品,计算机硬件和软件。 用户手册(user manual) :它是一个用户指南,特别用于向用户提供有关使用方法的说明。区别 Basis User guide User manual 同义词 Synonyms Instruction manual 对象/目的 Objectives/Purpose 提供用户相关的关键信息 To the point informtion that is relevant to the user 详细的技术指导 Technical detailed instruction 同义词 Synonyms Catalog, directory, guidebook, handbook, manual, key, reference key,

浅谈自学Python之路(day1)

我们两清 提交于 2020-12-27 06:46:10
2018-02-19 17:15:14 Python语言相对于其他语言较为简洁,也相对好入门比如后面不加分号,基本见不着大括号等优点 第一个程序,也是学每门语言都需要掌握的第一个代码 print ( " Hello World " ) print 语句用法 1 print ' a ' , ' b ' # print可以接受多个参数,参数的输出之间以空格相隔。 2 print ' a ' , # 如果逗号之后没有参数,则不会换行。 3 print ' b ' 接下来是输入用户名密码 1 import getpass 2 3 _username = ' lym ' 4 _password = ' abc123 ' 5 username = input( " username: " ) 6 # password = getpass.getpass("password:") 7 password = input( " password: " ) 8 if _username == username and _password == password: 9 print ( " Welcome user {name} login... " .format(name= username)) 10 else : 11 print ( " Invalid username or password!

Hyperledger Fabric创建通道抛错Error: got unexpected status: FORBIDDEN -- Failed to reach implicit thres...

你离开我真会死。 提交于 2020-12-24 02:29:43
安装Hyperledger Fabric,服务整个都跑起来了,但是抛了一个错,Error: got unexpected status: FORBIDDEN -- Failed to reach implicit threshold of 1 sub-policies, required 1 remaining: permission denied 这个时候找了很多解决的办法,解决思路是,仔细看一下orderer的日志,看清楚它到底是具体的哪一个部分有问题, 看到大多数的问题在于: 1)UTC [cauthdsl] deduplicate -> ERRO 014 Principal deserialization failure (the supplied identity is not valid: x509: certificate signed by unknown authority (possibly because of "x509: ECDSA verification failure" while trying to verify candidate authority certificate "ca.org1.example.com")) for identity 错误原因:由于启动过网络并且更新了证书,在没有删除干净的环境中启动复用的之前的volume

Android ELF 文件实例解析

别说谁变了你拦得住时间么 提交于 2020-12-19 06:48:08
上一篇讲述了Android ELF文件结构解析,本篇文章通过一个样本实例深入的理解一下 Android ELF文件结构内容 ,以及如何定位 init 或init_array函数。 一般情况下,开发者为了增加代码的安全性,会将 关键的代码封装在动态链接库so文件中,下面我们通过一个样本文件自带的 libcore.so文件为例 ,从十六进制数据的角度, 进一步掌握Android ELF文件格式 。 通过使用十六进制编辑工具(如:010Editor)打开libcore.so文件,这个工具会有ELFTemplate.bt模板,相对比较方便,推荐使用。 打开并运行ELFTemplate.bt模板,在Template Results窗口可以看到解析的结果,如下图1所示。 图1 目标文件libcore.so内容 ELF文件头的解析 使用arm-linux-androideabi-readelf.exe-h libcore.so或者使用”>”追加到文件,如:arm-linux-androideabi-readelf.exe-h libcore.so > ELF_Header.txt 从上图我们知道ELF Header有0x34个字节,也就是52个字节, 使用010Editor工具获取libcore.so文件的ELF文件头部信息 ,前0x34个字节( 从0000到0033 ),如图2所示。 图2

Zabbix学习笔记

青春壹個敷衍的年華 提交于 2020-12-15 09:50:43
官方文档: https://www.zabbix.com/documentation/3.2/manual 监控介绍: 传感器: 数据采集 --> 数据存储 --> 数据展示 报警:采集到的数据超出阈值 时间序列数据 开源监控工具: SNMP: 工作模式:NMS端向agent端采集数据;agent端向NMS端报告数据;NMS端请求agnet端修改配置 安装:# yum install -y net-snmp 组件:MIB(management information base,管理信息库);SMI(MIB表示符号);SNMP协议 NMS可发起操作: Get, GetNext, Set, Trap(接收agent发来的数据) agent: Response UDP NMS:161 agent:162 IPMI,windows自带的一种免费接口。 SNMP协议之所以需要MIB库来对监控的数据进行描述,是因为协议本身很简单,没有对各项指标进行描述。而不同于SNMP,其他复杂一点的监控系统,比如nagios或者zabbix,他们协议自身就有定义过这些指标,所以zabbix没有类似MIB之类的东西。这样做的缺点在于,zabbix在传输监控数据的时候就会占用较大带宽,因为zabbix使用jason格式传输数据。但是在2.4版本之后,就会简化传输数据的内容,减少带宽消耗。 SNMP协议的版本:

Genymotion模拟器无法开启的解决方法——Unable to start the virtual device,The virtual device got no IP address

笑着哭i 提交于 2020-12-02 22:10:37
Genymotion模拟器无法开启的解决方法——Unable to start the virtual device,The virtual device got no IP address 参考文章: (1)Genymotion模拟器无法开启的解决方法——Unable to start the virtual device,The virtual device got no IP address (2)https://www.cnblogs.com/JohnTsai/p/4564782.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/u/4437884/blog/4770980

torch nll_loss

不想你离开。 提交于 2020-11-28 13:29:22
正确格式: 1. data:3,3,3,2 label:3,3,2 2.data:3:2 label:2 3.data:2,1,6 label:2,6 Traceback (most recent call last): torch.Size([3, 3, 3, 2]) torch.Size([3, 2]) File "F:/project/chedaoxian/Ultra-Fast-bar-Detection/utils/loss.py", line 91, in <module> out_size, target.size())) ValueError: Expected target size (3, 3, 2), got torch.Size([3, 2]) data维度 [2,6] label维度[2],这样才可以,增加维度就报错。 如果data是[2,1,6] label就需要是[2,6] import torch import torch.nn as nn import torch.nn.functional as F data = torch.randn(2,6) target = torch.tensor([1,2]) print('data:', data.size(),target.size()) entropy_out = F.cross_entropy