- 博客(38)
- 资源 (2)
- 收藏
- 关注
原创 《C++代码分析》第三回:类成员函数覆盖&&父类函数的调用(分析this指针的变化)
在C++的学习中我们知道,子类是可以覆盖父类的方法,这里我们探讨一下子类方法调用父类方法时this指针时如何变化的。
2023-03-11 16:22:59 605
原创 《C++代码分析》第二回:函数重载&&const char* ,char*,const char[],char[]汇编代码上的区别
C++相比C是支持函数重载的,现在我们详细探讨一下C++函数重载与类方法承载。const char* ,char*,const char[],char[]汇编代码上的区别
2023-03-06 11:29:50 414
原创 《C++代码分析》第一回:栈溢出标志分析,this指针分析
和C语言不同C++是一个面向对象编程的语言,其对象结构会给我们在阅读反汇编代码时带来一定困扰,因此需要简单学习一下C++特有的结构。
2023-03-05 23:11:35 134
原创 SHU编码理论
1.辗转相除法求最大公因子要点:使用除数与余数不断取余计算,最终使得余数为0的上一次余数便为最大公因子。例:12.同余,剩余类同余:若两整数a,b被同一正整数d除时,有相同的余数则称a,b关于d同余。记作:a≡b(mod d)剩余类(同余类):模d运算余数相同的元素构成的集合为模d的剩余类,可分别记作:[0],[1],[2]………,[d-1],其中把0,1,2………,d-1叫做对应剩余类的代表元剩余类之间也可定义加法和乘法运算:[a]+[b]=[a+b] mod d[a][b]=[ab
2022-05-29 10:48:17 1644
原创 IDA静态分析.so 文件
1.导入.so文件上面包含6个选项其中Exports显示了所有调用的函数例如:对应于:使用ALT+T搜索字符串双击可以进入函数的汇编代码在汇编代码届满按F5可以查看C的伪代码选中文字可以对函数名进行修改可以使用010Editor定位直接修改字符串(CTRL+G),注意不能修改长度替换原先的SO文件查看结果:...
2022-05-03 22:21:15 941
原创 Android Studio2021创建C++ /C代码
1.选择空文件,其他默认2.创建JAVA类3.添加C++生成如下文件4.创建调用方法JAVA类5.引入so,并调用函数,并添加代码6.修改并添加入口7.运行
2022-05-03 20:33:23 2055
原创 2021DASCTF July X CBCTF 4th Nuclear wastewater学习记录
听完直播,这道题便豁然开朗解压文件获得两个文件其中flag.zip被加密,其密码应该是在这张二维码图片中,扫描二维码,出现一个假的flag.“很容易”发现二维码的每个地方的颜色不一样,推测这些颜色隐藏了密码信息如下列出脚本以及编写思路:#读入图片并获取二维码大小from PIL import Imageimg=Image.open('Nuclear wastewater.png')x,y=img.size#获取每单位二维码的颜色的RGB值装入list,剔除白色list=[]for
2021-08-02 21:52:43 463
原创 HTTP 请求走私
1.产生原因HTTP请求走私漏洞的出现是因为:HTTP规范提供了两种不同的方法来指定请求的结束位置:Content-Length标头和Transfer-Encoding标头。Transfer-Encoding如果一个HTTP消息(请求消息或应答消息)的Transfer-Encoding消息头的值为chunked,那么,消息体由数量未定的块组成,并以最后一个大小为0的块为结束。例如:POST / HTTP/1.1Host: test.com......Connection: keep-aliv
2021-08-01 19:52:16 260
原创 不同于书本上的二分查找
这个视频挺不错的【bilibili链接】int binary_search2(int* A, int n, int key)//二分查找{ int left = -1, right = n; while (left + 1 != right) { int mid = (left + right) / 2; if (A[mid] <= key) { left = mid; } else { right = mid; } } if (key == A[left
2021-05-18 19:31:42 71
原创 2021UMDCTF学习记录
Top of the Charts题目描述: curl http://chals5.umdctf.io:4003解决方式:curl -I http://chals5.umdctf.io:4003或curl --head http://chals5.umdctf.io:4003-I:只显示 http response 的头信息。-i:显示网页源码和response头部信息问题:如果使用 -i则不会显示flag待解决。。。。Not Slick这是一道取证题...
2021-04-19 19:37:50 134
原创 RITSEC CTF2021 Forensics1597题解记录
题目地址:http://git.ritsec.club:7000/1597.git/这是一道与git版本管理有关的题目解题过程:一、很明显第一步将远程仓库克隆到本地git clone http://git.ritsec.club:7000/1597.git/其中一共有两个文件打开后发现flag.txt为空文件,README.md文件显示:# 1597A git challenge series? Sounds fun.没有用!!!二、推测(看大佬WP)查看版本记录。1.mkdir ki
2021-04-13 19:19:39 366
原创 bugku 1和0的故事
bugku 1和0的故事借此机会顺便学习了一下python处理excel基本操作:步骤一:创建一个xlsbook = xlwt.Workbook() 步骤二:创建一个样式(黑色填充,无边界)style = xlwt.easyxf('pattern: pattern solid, fore_colour black;font: height 250')步骤三:打开一张表单table=book.add_sheet('flag_code',cell_overwrite_ok=True)步骤
2021-04-08 20:34:14 1882
原创 python自动化selenium,火狐插件 selenium IDE的添加和使用
python自动化selenium使用的简单记录**起因:**很早以前就一直想亲自完成表单的自动填报。一直用requests模块的post方法进行尝试,但是一直失败。知道前几天看到了python自动化,这才意识到python提交表单这么“简单”。阶段一:使用Selenium IDE进行自动化填报(我使用的是Firefox浏览器)1.火狐浏览器插件搜索Selenium IDE会有一个如图所示的插件,我们将它下载并添加,这样就可以通过这个插件很容易的完成表单的自动化填报。2.单击运行,选择第一项新创建
2021-02-26 16:12:12 815
原创 SESSION序列化机制
一、session.serialize_handler三种序列化方式php_binary 键名的长度对应的ascii字符+键名+经过serialize()函数序列化后的值php 键名+竖线(|)+经过serialize()函数处理过的值(默认)php_serialize 经过serialize()函数处理过的值,会将键名和值当作一个数组序列化可以通过这个函数来设置当前页面的序列化方式:ini_set('session.serialize_handler','php_serialize');1.p
2021-01-29 14:11:18 453
原创 PHP会话控制中session的使用
简单介绍基本功能:通过为每个独立用户分配唯一的会话 ID,可以实现针对不同用户分别存储数据的功能。 会话通常被用来在多个页面请求之间保存及共享信息。一般来说,会话 ID 通过 cookie 的方式发送到浏览器,并且在服务器端也是通过会话 ID 来取回会话中的数据。 如果请求中不包含会话ID 信息,那么 PHP 就会创建一个新的会话,并为新创建的会话分配新的 ID。【摘自官方文档】简单来说其作用类似于cookies但是相比较cookies更加安全。cookies保存在用户的浏览器上,用户可以非常方便
2021-01-28 19:42:27 248 2
原创 PHP序列化与反序列化中魔术方法(__sleep和__wakeup)
魔术方法:__sleep、__wakeup在学习序列化和反序列化时,会遇到__sleep和__wakeup两个函数。这两个函数的执行时机与其命名有相当有趣的联系:sleep是睡觉,开发人员把序列化(serialize)看作是一个类进入了梦乡,因此在这之前就要执行__sleep函数;wakeup是起床,对应的把反序列化(unserialize)看作是一个类被唤醒了,因此在这之前就要执行__wakeup函数。总结一下:__sleep在serialize前执行;__wakeup在unserialize前
2021-01-28 13:11:49 700
原创 Linux curl命令基本用法
基本格式:curl + [options] + url构造http请求头:参数作用-H/--header+"name:value"添加一个请求头-A/--user-agent+"string"构造"User-Agent"-e/--referer+<url>构造请求来源,referer处理相应头:参数作用-I/--head只输出HTTP-header,不获取内容-I/--include输出HTTP头和响应内容-
2021-01-22 23:05:31 131
原创 Bugku冬至红包记录Check via eval
写在前面:这道题过滤太阴间了,这我是看了大佬的题解才有的启发。WP:代码:<?php error_reporting(0); require __DIR__.'/flag.php'; $exam = 'return\''.sha1(time()).'\';'; if (!isset($_GET['flag'])) { echo '<a href="./?flag='.$exam.'">Click here</a>'
2021-01-20 21:30:49 470 2
原创 BUGKU web22 assert注入漏洞
这道题和攻防世界那道/.git泄露差不多题目给了提示: <?PHP $poc="a#s#s#e#r#t"; $poc_1=explode("#",$poc); $poc_2=$poc_1[0].$poc_1[1].$poc_1[2].$poc_1[3].$poc_1[4].$poc_1[5]; $poc_2($_GET['s'])$poc_1=assert$_GET=s因此只需要构造payload=?s=XXX即可这里先尝试payload=?s=phpinfo();存在回显因
2021-01-20 20:28:44 502
原创 XCTF WEB mfw学习记录
一、考点:1)git源码泄露2)php代码审计3)注入攻击二、题解步骤一:访问http://220.249.52.134:39449/.git/发现存在git仓库源码泄露步骤二:使用GitHack工具下载泄露源码:python GitHack.py http://220.249.52.134:39449/.git/返回如下响应index.phptemplates/about.phptemplates/contact.phptemplates/flag.phptemplates/
2021-01-20 16:34:52 279
原创 边缘检测学习笔记
一、sobel算子边缘检测cv2.Sobel(src,ddepth,dx,dy,ksize=)src:图像ddepth:图像深度(CV_64F表示双精度浮点型)dx,dy水平和数值方向ksize:Sobel算子,取值3~31的奇数。因为算子矩阵一定要存在中心点。import cv2 as cvdef showImg(img,name): cv.namedWindow(name,0);#可调大小 cv.imshow(name,img)img=cv.imread('test.jpg',cv.
2021-01-19 20:40:14 156
原创 攻防世界web进阶shrine笔记
攻防世界web进阶shrine考点:flask模板注入漏洞①访问目标网站发现一串代码②将主页代码格式化后加上注释:import flask import os app = flask.Flask(__name__) #定义网页app.config['FLAG'] = os.environ.pop('FLAG') #将config中的FLAG修改成os.environ.pop['FALG']@app.route('/') #网站根地址 def index():
2021-01-17 23:06:50 217
原创 flask简单入门
flask简单入门学习原因:ctf中有一些模板注入漏洞比如flask模板注入漏洞,学习这些漏洞前好歹要看得懂简单模板的框架再说。基本格式from flask import Flask#写一个函数处理浏览器发送来的请求@app.route("/")#页面根目录127.0.0.1:5000/def index(): # #这里处理业务逻辑 # return "hello gay"#表示返回数据->相应@app.route("/az")#页面127.0.0.1
2021-01-17 21:06:02 172
原创 OpenMPI多节点运行学习记录
一、配置VMware网络①网络连接调整为Net模式②修改网卡vim /etc/sysconfig/network-scripts/ifcfg-ens33修改如下选项,附:vim用法i:插入esc:退出插入在退出插入下按“:wq!”保存并退出修改完成后:重启网络服务service network restart③修改映射vim /etc/hosts二、克隆其他主机按照一中方法修改为映射对应IP三、ssh免密连接三个主机全部需要生成!进入.ssh隐藏文件夹cd ~/.s
2021-01-15 15:29:09 2785
原创 特征值分解图像压缩学习笔记
基于特征值分解图像压缩学习笔记(MATLAB)X=imread('lplp.jpg'); %将图像变成单通道Y=rgb2gray(X); %生成一个窗口figure(1);%显示Y图片imshow(Y); %将原图像整理为正方图像,宽高为 H H=100;S=size(Y);%得图像的宽和高 %生成一个100*100的矩阵用来装每个像素点Z=zeros(H,H); for ii=1:H for jj=1:H %S(1):宽,S(2):高 Y图片每隔100
2021-01-08 16:15:12 1408
原创 python图像处理Pillow学习笔记
Pillow学习笔记1.安装pillowpip install pillow2.图像处理简介图像处理RGB色彩模式:-R(red) 0--255-G(green) 0--255-B(blue) 0--255像素阵列每个点就是一个像素每个点都由(R,G,B)表示颜色图片素材:3.模块介绍(1)Image模块例:用Image打开一张图片#导入模块from PIL import Image#打开图片img=...
2021-01-06 19:48:57 602 1
原创 python正则表达式学习笔记
python正则表达式学习笔记import re包match方法:re.match(pattern,string,flag=0)参数功能patter匹配的正则表达式flags需要匹配的字符串flagsflag参数修饰符描述re.I不区分大小写re.L做本地化识别匹配re.M多行匹配影响^,$re.S使.匹配包括换行在内的所有字符re.U根据Unicode字符集解析字符,影响\w \W \b \B
2021-01-05 20:33:57 167
原创 Python多线程学习笔记
线程创建步骤1.导入线程模块import threading2.通过线程类创建线程对象线程对象=threading.Thread(target=任务名,args=(元组形式参数),kwargs={字典型参数},name=“线程名”,group=《线程组一般为None》)3.启动线程执行任务线程对象.start()=========================================以下与进程一样:***多线程连接***只需要把所有的muliprocessing改成threadi
2021-01-03 13:50:07 125 1
原创 Python3多进程学习笔记
多任务:同一时间跑多个任务多任务的试行方式1.并发(单核处理器交替执行多个任务)2.并行(真正意义同时执行,多核每个核同时运行)单进程:程序运行↓创建主进程↓运行程序多进程:程序运行→创造子进程→与主进程同时运行程序↓创建主进程↓运行程序进程创建步骤1.导入进程包import multiprocessing2.通过进程类创建进程对象进程对象=multiprocessing(target=任务名,args=以元组的形式给其传参,kwargs=以字典的形式给他传参,nam
2021-01-03 13:38:12 105
原创 BugKu Web21 never never never give up
never never never give up①打开F12:发现1p.html发现访问后一片空白。②通过BP抓包该页面发现一大串编码,经过一次base64和一次url解码后得到如下php代码<?PHPif(!$_GET['id'])//GET方法获得id的值{ header('Location: hello.php?id=1'); exit();}$id=$_GET['id'];$a=$_GET['a'];$b=$_GET['b'];if(stripos($a,'.')
2020-12-26 11:20:05 190
原创 BugKu web20 cookies欺骗
BugKu web20 cookies欺骗①打开页面发现一堆乱码什么意思也不知道。然后看到url有两个参数(line=&filename=a2V5cy50eHQ=)②其中一个是“a2V5cy50eHQ=”base64解码后是“keys.txt”,然后盲猜line是行数。这时就想看看index.php(base64后为aW5kZXgucGhwCg==)③然后给file参数1,2,3……发现出现了代码。这时就想到爬虫来帮忙收集代码废话不多说直接上代码:import requestsfor i
2020-12-24 21:19:40 569
原创 Bugku web19 速度要快!
Bugku web19 速度要快!①F12老套路打开源码看到需要我们提交一个margin数据②翻翻翻,翻翻翻,翻到了请求头发现:这里有flag!!!Wow这也太简单了吧,已提交啊哦错了。。。然后再base64解码啊哈又错了。③这时想到速到要快,又想到秋名山车神这一定又是写脚本本!!!④废话不多说直接上代码:import base64import bs4,requestsurl='http://114.67.246.176:19535/'#指定urlreq2=requests.Se
2020-12-24 20:31:48 472 1
原创 BuKu web18 秋名山车神
BuKu web18 秋名山车神显然这道题是编写脚本,废话不多说直接上代码:import bs4,requestsfrom lxml import htmlfrom bs4 import BeautifulSoupurl='http://114.67.246.176:14245/'#指定urlreq2=requests.Session()#开启一个会话ht = req2.get(url)soup=BeautifulSoup(ht.content,'lxml')#print(soup.pr
2020-12-24 19:46:37 327 1
原创 BugKu Web16 备份是个好习惯
BugKu Web16 WP记录1.首先使用御剑扫描发现index.php.bak备份文件2.代码审计见注释<?php/** * Created by PhpStorm. * User: Norse * Date: 2017/8/6 * Time: 20:22*///构造语句:http://114.67.246.176:11212/?kekeyy1=QNKCDZO&kekeyy2=240610708include_once "flag.php";//包含文件flag.ph
2020-12-24 16:59:12 605 1
原创 MyAccess denied for user ‘ODBC‘@‘localhost‘ (using password: YES)最啰嗦采坑教程
MyAccess denied for user ‘ODBC’@‘localhost’ (using password: YES)以及 sql解决Can’'t connect to MySQL server on localhost (10061)首先将**“根目录/bin”路径添加到环境变量中**(方法自己百度,只有好处没坏处)1.win+R 输入service.msc查看有没有mysql(多半没有)2.以管理员身份运行cmd3.切换到mysql安装目录下的bin文件夹(用cd命令慢慢走吧)4.
2020-08-19 12:28:03 2273
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人