自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MZ21G的博客

~3Tnn2Ssn3~

  • 博客(75)
  • 资源 (1)
  • 收藏
  • 关注

原创 南京大学《软件分析》笔记01 - 静态分析的基本概念

Rice’s Theorem“Any non-trivial property of the behavior of programs in a r.e. language is undecidable.”r.e.(recursively enumerable) = recognizable by a Turing-machine所有我们感兴趣的,需要静态分析的部分,都是non-trivial的。这句话的意思就是,没有一个完美的静态分析算法可以对一个non-trivial的程序给出一个绝对准确的

2022-01-27 14:58:57 1551 1

原创 C++读取bin二进制文件

void read_firm(){ char path[] = R"(C:\Users\yanzhichen\Desktop\file_share\hikvision_firmware\IPC_E2_EN_STD_5.4.4_161105.dav)"; ifstream fin; fin.open(path, ios::binary); if(!fin){ cout<<"open error!"<<endl; retur

2021-09-22 14:39:06 1521 2

原创 某摄像头固件提取

首先进入摄像头页面,没有发现ftp、telnet相关选项,拆机,查看电路板,发现UART引脚。UART定位UART至少包含4个引脚,分别是公共引脚(接地)GND、电源引脚VCC、输出引脚TXD、输入引脚RXD。一般情况下,四个引脚会并排的排列在一起。即下图这样的情况(其旁边的三根线是方便UART调试手工焊接上去的)。也存在四个引脚没有并排排列在一起或没有GND引脚、并排引脚多于4个等情况,遇到这样的情况则需要深入分析电路走线然后对可疑引脚进行一一尝试来进行定位。常规UART四个引脚的区分方法

2021-09-02 09:48:35 7243 1

原创 非对称加密工作原理

非对称加密非对称加密使用两个密钥,一个是public key,一个是private key。通过一个特殊的数学算法,使得数据的加密和解密使用不同的密钥。因为用的是不同的密钥,所以称为非对称加密。非对称加密最著名的是RSA算法,这是以其发明者Rivest, Shamir 和Adleman命名。非对称加密算法里面的public key和private key在数学上是相关的,这样才能用一个加密,用另一个解密。不过,尽管是相关的,但以现有的数学算法,又没有办法从一个密钥,算出另一个密钥。非对称加密的好处在于,

2021-08-10 14:19:22 8788

原创 wireshark常用过滤表达式

关键字and 表示 并且or 表示 或者!表示 取反eq 和 == 等同多组条件联合过滤数据包的命令,就是通过每个单个的条件命令与关键字“与或非”的组合实现的。针对 IP 的过滤针对源地址为 192.168.20.72 的包ip.src==192.168.20.72针对目的地址为 192.168.20.72 的包ip.dst==192.168.20.72对源地址或目的地址为 192.168.20.72 的包ip.addr==192.168.20.72等价为:ip.

2021-01-12 19:20:27 1996

原创 error: cast from ‘int*’ to ‘unsigned int’ loses precision [-fpermissive]

今天在编译一下程序时,发生报错:#include<stdio.h>int main(){ int i; char char_array[5] = {'a', 'b', 'c', 'd', 'e'}; int int_array[5] = {1, 2, 3, 4, 5}; unsigned int hacky_nonpointer; hacky_nonpointer = (unsigned int) char_array; for (int i = 0;

2021-01-01 20:55:27 5153 1

原创 fatal error: bits/libc-header-start.h: 没有那个文件或目录

今天用gcc在64位机器上编译一个32位的程序,遇到报错,具体如下图:错误原因系统中的gcc没有安装multilib 库;使用这个库可以在64位的机器上产生32位的程序解决办法sudo apt-get install gcc-multilibsudo apt-get install g++-multilib最终效果...

2021-01-01 11:05:26 5492 1

原创 使用Burpsuite进行暴力破解

Burpsuite是一款Web安全领域的跨平台工具,基于Java开发。它集成了很多用于发现常见web漏洞的模块,如Proxy、Spider、Scanner、Intruder、Repeater等。所有模块共享一个能处理并显示HTTP消息的扩展框架,模块之间无缝交换信息,可以大大提高完成Web题目的效率。Burpsuite 的 Intruder模块包含Sniper、Battering ram、Pitchfork、Cluster bomb等四中攻击类型,可以方便的进行Fuzz等测试。在Proxy等模块,在想要测

2020-12-27 16:29:38 13737 2

原创 MBE实验平台搭建及Radare2使用介绍

前几天刚刚接触MBE(伦斯勒理工学院开设的漏洞利用课程)主要是单纯跟着课件一步一步走,这两天放假,就把它提供的实验平台(warzone)来搭建一下。实验平台搭建具体方法在它的github上还是比较详细的,在此主要记录一下我搭建时候的主要步骤:下载github提供的vm虚拟机将其中的镜像文件提取出来打开VMware -> 文件 -> 新建虚拟机 -> 选择“ 自定义(高级)”一路点击“下一步”,在出现"安装客户机操作系统"窗口时,选择“稍后安装操作系统”,点击“

2020-12-27 10:04:58 748

原创 X86_Intel_汇编语法

x86寄存器体系汇编基础; EAX EBX ECX EDX - 通用寄存器; ESP - 堆栈指针,指向当前栈帧的栈顶(底地址); EBP - 基指针,指向当前栈帧的栈底(高地址); EIP - 指令指针,指向CPU要执行的下一条指令的地址; 标志寄存器; ZF - 零标志,当一个操作的结果为0时,设置为1; CF - 进位标志,当一个操作的结果太大或者太小进而产生进位或借位时,设置为1; SF - 负数标志,当一个操作的结果为负数时,设置为1; DF - 方向标志位,表示DI以及SI

2020-12-24 15:19:33 1887

原创 MBE lab1 writeup

MBE(Modern Binary Exploitation)是RPI(伦斯勒理工学院)开设的PWN(漏洞利用)课程,本着由浅入深的原则,从基本的逆向分析开始,涵盖了内存溢出,编写shellcode,字符串格式化等内容。以下为 lab1 的 writeup题目:附件: 附件首先,把它拖到 Exeinfo PE 里边看一下嗯,32位,没有壳,那就直接拖到32位IDA里边F5,结果是这个样子滴。整体代码逻辑比较简单,双击一下第10行的“storedpass”,可以看到IDA跳转到了 .data

2020-12-22 09:10:06 219 1

原创 计算机中信息的表示和处理

信息的表示和处理有三种重要的数字表示:无符号表示大于或者等于0的数字补码表示可以为正或者为负的数字浮点数表示实数的科学计数法的以二为基数的版本计算机的表示法使用有限数量的位来对一个数字编码,因此,当结果太大以至于不能表示时,某些运算就会溢出。整数表示虽然只能编码一个相对较小的数值范围,但是这种表示是精确的;而浮点数虽然可以编码一个较大的数值范围,但是这种表示只是近似的,且由于表示的精度有限,浮点运算是不可结合的。十进制转十六进制如果一个数可以表示成2的非负整数n次幂时,即 x= 2

2020-12-10 19:10:35 700 1

原创 网络通信底层原理

系统之间利用网络通信现代系统经常通过网络和其他系统连接到一起,从一个单独的系统来看,网络可视为一个I/O设备。当系统从主存将一串字符复制到网络适配器时,数据流经过网络到达另一台机器,相似的,系统可以读取从其他机器发送来的数据,并把数据复制到自己的主存。继续讨论hello示例,我们可以使用Telnet应用在一个远程主机上运行hello程序。假设用本地主机上的Telnet客户端连接到远程主机上的Telnet服务器。在我们登录到远程主机并运行外壳后,远端的外壳就在等待接收输入命令。从这点开始,远程运行hel

2020-12-10 19:03:27 911 2

原创 操作系统对程序提供服务的方法

操作系统管理硬件回到hello程序的例子,外壳(shell)没有直接访问磁盘,hello程序也没有直接访问显示器。取而代之的是,它们都是依靠操作系统提供的服务来达到的上述功能。我们可以把操作系统看成是应用程序和硬件之间插入的一层软件,所有应用程序对硬件的操作都必须通过操作系统。操作系统有两个基本功能:防止硬件被失控的应用程序滥用向程序提供简单一致的机制来控制复杂而又通常大相径庭的低级硬件设备操作系统通过几个基本的抽象概念(进程、虚拟存储器和文件)来实现这两个功能如图所示,文件是对I/O设

2020-12-10 18:59:16 1494 1

原创 可执行文件运行的底层原理

处理器读并解释存储在存储器中的指令此刻,hello.c源程序已经被编译系统翻译成了可执行目标文件hello,并存放在磁盘上,也就是电脑上的某个文件夹下面。要想运行该文件,可以将他的文件名输入到被称为外壳(shell)的应用程序中,也就是终端,即Windows的cmd中shell是一个命令行解释器,它输出一个提示符,等待你输入一个命令行。然后执行这个命令。如果该命令行的第一个单词不是一个内置的外壳命令,那么外壳就会假设这是一个可执行文件的名字,它将加载并运行这个文件。 所以在此例中,外壳将加载并运行he

2020-12-10 18:46:40 2449 2

原创 程序从源代码到可执行文件的整个过程

程序被其他程序翻译成不同的格式hello程序的源文件虽然能够被人读懂,但为了能让它在系统上运行,每条c语句都要被其他程序转化为一系列的低级机器语言指令,然后这些指令按照一种可执行目标程序的格式打包好并以二进制磁盘文件的形式存放起来,才能在系统中运行。在unix系统上,从源文件到目标文件的转化是由编译器驱动程序完成的。gcc -o hello hello.c这条命令会让GCC编译器驱动程序读取源程序文件hello.c,并把它翻译成一个可执行目标文件hello,这个翻译过程分为四个阶段:1.预处理

2020-12-10 18:36:25 2199 1

原创 Modern Binary Exploitation - 汇编基础

x86寄存器体系汇编基础; EAX EBX ECX EDX - 通用寄存器; ESP - 堆栈指针,指向当前栈帧的栈顶(底地址); EBP - 基指针,指向当前栈帧的栈底(高地址); EIP - 指令指针,指向CPU要执行的下一条指令的地址; 标志寄存器; ZF - 零标志,当一个操作的结果为0时,设置为1; CF - 进位标志,当一个操作的结果太大或者太小进而产生进位或借位时,设置为1; SF - 负数标志,当一个操作的结果为负数时,设置为1; 移动数据mov ebx, eax

2020-12-08 18:51:28 213

原创 监督学习和无监督学习的区别(机器学习)

机器学习主要分为两类监督学习无监督学习两者的区别主要是是否需要人工参与数据结果的标注监督学习:教计算机如何去完成预测任务(有反馈),预先给一定数据量的输入和对应的结果即训练集,建模拟合,最后让计算机预测未知数据的结果。监督学习一般有两种回归问题就是给出一系列数据然后预测任意想要的数据,比如给出了一系列的房屋面积-价格数据,根据这些数据来预测任意面积的房屋价格。给出照片-年龄数...

2020-12-05 16:20:49 7038

原创 计算机中信息的表示

CSAPP目录第一章 计算机系统漫游1.1 信息就是位+上下文1.2 程序被其他程序翻译成不同的格式1.3 了解编译系统如何工作是大有益处的1.4 处理器读并解释存储在存储器中的指令1.4.1 系统的硬件组成1.4.2 运行hello程序1.5 高速缓存至关重要1.6 存储设备形成层次结构1.7 操作系统管理硬件1.7.1 进程1.7.2 线程1.7.3 虚拟存储器1.7.4 文件1.8 系统之间...

2020-12-05 16:19:34 25975 4

原创 BurpSuite修改服务器端返回数据

在代理的设置选项中勾选拦截服务端数据访问目标网页,在代理的拦截选项中右键选择”Respense to this requests“然后forward发送,可以看到服务器端返回的数据这里还没有传递到浏览器,可以在这里修改数据,这里我删掉了script代码,并在body里边添加了我的名字点击forward数据修改完毕有一些网址的后台登陆验证,如果检测登陆失败会返回302状态码,然后js跳转到首页,这个时候可以修改返回包的信息,状态码改成200,然后删除js代码即..

2020-12-04 22:36:34 10431 1

原创 kali安装gef出现Python scripting is not supported in this copy of GDB

最近想在https://pwnable.tw/challenge/这个网站上刷刷CTF题,然后点进第一个题后发现有个教程”Don’t know how to start?Advanced exploitation with GDB-GEF: GEF 101 - Solving pwnable.tw/start by @_hugsy“然后我就又怀着好奇心点了进去,这个教程首先是教你怎么在已经装了GDB的系统上安装GEF,但我在跟随教程安装的时候却出现了问题。$ ./gdb -q/home/clay/.

2020-12-02 10:28:16 819

原创 python在数据链路层使用原始套接字(rawsocket)发送接收数据

最近工作上有一项任务需要使用python在数据链路层上收发数据,遇到了很多坑,在此记录一下代码如下:#!/usr/bin/env python# -*- coding:utf-8 -*-# author:chenyanzhi# datetime:2020/11/20 17:16# software: PyCharmimport binasciiimport socketimport uuiddef get_mac_address(): """获取本机MAC地址"""

2020-11-23 12:37:22 1795 2

原创 pip is configured with locations that require TLS/SSL

在linux中安装好python3.6.8之后,使用pip安装模块出现了问题,具体报错如下:pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.Could not fetch URL https:*******: There was a problem confirming the ssl certificate: Can't connect

2020-11-22 15:19:23 737 1

原创 广度优先搜索(BFS)的C语言实现

广度优先搜索算法(英语:Breadth-First Search,缩写为BFS),又译作宽度优先搜索,或横向优先搜索,是一种图形搜索算法。简单的说,BFS是从根节点开始,沿着树的宽度遍历树的节点。如果所有节点均被访问,则算法中止。#include <bits/stdc++.h>using namespace std;static const int N = 10;stati...

2020-03-01 18:03:12 3650

原创 深度优先搜索(DFS)的C语言实现(递归与栈实现)

深度优先搜索算法(英语:Depth-First-Search,DFS)是一种用于遍历或搜索树或图的算法。沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。属于盲目搜索。...

2020-03-01 17:14:28 2891

原创 Study Less & Study Smart

study for chunks of 25 to 30 min after that do something fun or go awayreward yourself after finishing your entire daystudy concepts firstly then study factsonce you learn the concepts test yourse...

2020-02-26 16:23:46 673

原创 快速排序的C语言实现与讲解

快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为较小和较大的2个子序列,然后递归地排序两个子序列。步骤为:挑选基准值:从数列中挑出一个元素,称为“基准”(pivot),分割:重新排序数列,所有比基准值小的元素摆放在基准前面,所有比基准值大的元素摆在基准后面(与基准值相等的数可以到任何一边)。在这个分割结束之后,对基准值的排序就已经完成,递归排序子...

2020-02-25 21:25:08 294

原创 归并排序的C语言实现与讲解

归并排序是由递归实现的,主要是分而治之的思想,也就是通过将问题分解成多个容易求解的局部性小问题来解开原本的问题的技巧。这里多说一句,分而治之和减而治之是有区别的。分而治之是将一个问题分成两个或多个子问题(即两个或多个范围较小递归)solve(left, right){ int mid = (left + right) / 2; return max(solve(left, mid),...

2020-02-23 20:38:17 533 1

原创 MAC 安装 pygame报错 error: command 'clang' failed with exit status 1

使用以下命令安装:python3 -m pip install pygame

2020-01-07 18:51:17 1237

原创 pip install pcapy 显示 Setup script exited with error: command 'g++' failed with exit status 1

出现这个错误的原因90%是因为 Anaconda, 在命令行中用一下命令替换就可以了CFLAGS=-stdlib=libc++ pip install pcapy参考链接:https://github.com/src-d/tmsc/issues/7

2019-12-30 18:15:55 3385

原创 mac 修改 mysql 密码

/usr/local/mysql/bin/mysqladmin -u root -p password

2019-11-30 23:49:58 186

原创 Python image.show() 出错FSPathMakeRef(/Applications/Preview.app) failed with error -43

出错原因:/Applications/路径下根本就没有预览这个应用软件而预览这个软件所在目录为这个所以自然会出错解决办法创建一个软链接,也就是在/Applications/路径下新建一个预览的快捷方式ln -s /System/Applications/Preview.app /Applications/Preview.app这样就好了...

2019-11-12 14:47:52 2321 1

原创 mac pip3 install tesserocr 超时 或者报错

报错如下: ERROR: Command errored out with exit status 1: command: /Users/yzchen/anaconda3/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/_w/_62wz17d3zq1lws...

2019-11-09 20:55:46 734

转载 Mac系统调整Launchpad图标大小

运行“终端”程序,执行以下命令:1、调整每一列显示图标数量,7 表示每一列显示7个,在我的电脑上,7个个人觉得比较不错defaults write com.apple.dock springboard-rows -int 72、调整每一行显示图标数量,这里我用的是8defaults write com.apple.dock springboard-columns -int 83、由于修改...

2019-11-07 11:56:09 389

原创 lxml xpath 爬取猫眼电影出现的编码问题【Python3网络爬虫开发实战教程 崔庆才】

import requestsfrom lxml import etreeheaders = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) ' 'AppleWebKit/537.36 (KHTML, like Gecko) Chrom...

2019-11-04 11:21:07 626

原创 MAC python3.7安装pyspider遇到的一些坑

问题一最后一句出现File “c:\users\13733\appdata\local\programs\python\python37\lib\site-packages\pyspider\run.py”, line 231async=True, get_object=False, no_input=False):SyntaxError: invalid syntax报错原因pyth...

2019-10-26 19:25:45 686

原创 git 忽略特殊文件.gitignore的使用

⚡️ 为什么要忽略这些文件有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,每次git status都会显示Untracked files …,如果你上传到Git中去其他人pull下来的时候就会和他本地的配置有冲突,所以这样的配置文件我们一般不把它推送到git服务器中,但是又为了偷懒每次添加缓存的时候都想用git add .而不是手动一个一...

2019-10-20 11:48:20 512

原创 mac配置 WebLogic Server 12c (12.2.1.4)

1.下载weblogic首先下载weblogicweblogic下载地址我下载的是第一个下载好后解压打开是这样子滴2.配置JAVA_HOME进入到mac的jdk路径cd /Library/Java/JavaVirtualMachinesJDK的真实路径是:/Library/Java/JavaVirtualMachines/jdk版本号.jdk/Contents/Home然后使...

2019-10-13 21:08:33 1800

原创 递归的选择排序(C语言)

/** * 名称: 递归的选择排序 * 作者: mz21g * 日期: 2019.8.39 * */#include <stdio.h>#include <stdlib.h>#include <time.h>#define ARRAY 10 //生成多大的数组#define RANGE 100 //数组的元素大小从1到RAGNE...

2019-09-30 22:10:38 2535

原创 归并排序的实现(C语言链表)

/** * 名称: 归并算法的实现 * 作者: mz21g * 日期: 2019.8.29 * */#include <stdio.h>#include <stdlib.h>typedef struct CELL *LIST;struct CELL{ int element; LIST next;};LIST merge(LIST ...

2019-09-29 22:23:38 1402

Kaggle digital数据集 训练数据+测试数据

Kaggle digita l数据集 包含了42000份训练数据和28000份测试数据

2018-05-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除