- 博客(64)
- 收藏
- 关注
原创 IDEA控制台中文乱码
在IDEA中,如果控制台输出的中文字符显示为乱码,可能是因为控制台的编码设置不正确。这段代码会打印出当前控制台编码,并将其设置为UTF-8。请确保将其放置在其他控制台输出语句之前。如果方法1无效,你可以尝试在代码中显式地设置控制台编码。在你的程序入口处,即。希望这些方法能够帮助你解决控制台输出乱码的问题。重新运行代码,控制台应该能够正确显示中文字符。这样设置后,控制台应该能够正确显示中文字符。
2023-11-22 08:34:50
5921
1
原创 栈溢出原理
strcpy,字符串复制,遇到'\x00'停止。gets,直接读取一行,忽略‘\x00’strcat,字符串拼接,遇到'\x00'停止。s距离ebp的长度为0x14。
2022-08-27 14:32:09
422
原创 另一个程序已锁定文件的一部分,进程无法访问打不开磁盘“D:\安装包\XNJ\Win10\Windows 10.vmdk”或它所依赖的某个快照磁盘。模块“Disk”启动失败。未能启动虚拟机。
另一个程序已锁定文件的一部分,进程无法访问打不开磁盘“D:\安装包\XNJ\Win10\Windows 10.vmdk”或它所依赖的某个快照磁盘。模块“Disk”启动失败。未能启动虚拟机。
2022-06-08 21:34:33
4125
3
原创 PWN1|WP
1.检查保护机制开启了堆栈保护2.用32位IDA打开该文件1.shift+f12查看字符串,我们看到有“/bin/sh”关键字符串字样2. system("/bin/sh")地址为0x0804863A3.进入main函数,我们看到gets()危险函数因为gets()函数不限制用户输入,s长度为0x64,所以造成溢出4.gdb调试(1)cyclic 200生成200个有序字符(2)gdb ./pwn1run命令运行g...
2022-04-11 10:36:49
742
原创 XCTF|RE-高手区-BABYRE
1.检查有没有壳2.用64位IDA打开该文件1.shift+f12查看关键字符串,我们看到输入flag关键词和正确的关键词2.进入main函数3.进入judge(),发现点开函数是一些字符串猜测对函数进行加密了:这是加密语句对judge进行解密:插入脚本shift+f12或者编译前:编译后:然后点击judge函数按C,再按P就可以的出加密函数了3.加密函数judgeEXP#enco...
2022-03-09 21:25:33
230
原创 PWN|ciscn_2019_c_1
1.检查保护机制(1)开启堆栈保护(2)64位文件2.用64位IDA打开该文件(1)shift+f12查看关键字符串没有看到后面函数(system等)(2)进入mian函数int __cdecl main(int argc, const char **argv, const char **envp){ int v4; // [rsp+Ch] [rbp-4h] BYREF init(argc, argv, envp); puts("EEEEEE...
2022-02-28 17:12:10
496
原创 BUUCTF|PWN-[HarekazeCTF2019]baby_rop2-WP
1.检查保护机制开启了堆栈不可执行2.用64位IDA打开该文件(1)shift+f12,查看关键字符串(2)双击,ctrl+x,进入反汇编代码(3)ROPgadget查看返回地址(4)payloadpayload = b'a'*(0x20+0x8) + p64(pop_rdi) + p64(format_) + p64(pop_r15) + p64(got_addr) + p64(0) + p64(plt_addr) + p64(main_addr)1.
2022-01-18 15:43:02
697
原创 WIKI|PEN-ret2text-WP
1.检查保护机制(1)开启堆栈不可执行保护(2)该文件是32位文件2.用32位IDA打开该文件(1)先运行试试看(2)shift+f12查看关键字符串我们看到有system("/bin/sh")关键字符串(3)进入main函数看看看到gets()函数我们就看到溢出点了。S:0x64我们构造payload#encoding = utf-8from pwn import*context(os = 'linux',arch = 'i...
2022-01-12 20:42:57
2132
原创 BUUCTF|PWN-[OGeek2019]babyrop1-WP
1.检查保护机制(1)该文件是32位文件(2)开启堆栈不可执行2.用32位IDA打开该文件
2022-01-12 16:04:50
2415
原创 BUUCTF|PWN-ciscn_2019_n_8-WP(格式化字符串漏洞)
1.检查保护机制(1)保护全开2.运行看一下3.我们用32位的IDA打开该文件(1)Ctrl+F12查看关键字符串(2)查看反编译代码(3)条件满足var[13]!=0 &&var[13] ==17,才能拿到权限(4)var[13]位置在第十四个上payload构造第一种:payload = b'a'*13*4 + p32(17) #qword/IDA在32位里面是4个字节,在64位是/8个字节...
2022-01-11 10:28:25
2326
原创 BUUCTF|PWN-[第五空间2019 决赛]PWN5-WP
1.检查保护机制(1)开启了金丝雀和堆栈保护(2)该文件是32位的文件2.用32位的IDA打开该文件(1)F12查看关键字符串(2)我们进入反编译代码看看,看到nptr=unk_804C044才能获取权限(3)unk_804C044有4个字节(4)printf(&buf);存在格式化字符串漏洞(5)kali运行该文件,用%p看出偏移量为10,利用%10$n定位到这个位置payload构造payload = p32(0x804C044...
2022-01-10 10:35:38
1017
原创 压缩包伪加密学习笔记
压缩源文件数据区:50 4B 03 04:这是头文件标记(0x04034b50)14 00:解压文件所需 pkware 版本00 00:全局方式位标记(有无加密) 头文件标记后2bytes08 00:压缩方式5A 7E:最后修改文件时间F7 46:最后修改文件日期16 B5 80 14:CRC-32校验(1480B516)19 00 00 00:压缩后尺寸(25)17 00 00 00:未压缩尺寸(23)07 00:文件名长度00 00:扩展记录长度6...
2021-11-29 15:35:29
239
原创 栅栏密码学习
①把将要传递的信息中的字母交替排成上下两行。②再将下面一行字母排在上面一行的后边,从而形成一段密码。③例如:明文:THE LONGEST DAY MUST HAVE AN END加密:1、把将要传递的信息中的字母交替排成上下两行。T E O G S D Y U T A E N NH L N E T A M S H V A E D2、 密文:将下面一行字母排在上面一行的后边。TEOGSDYUTAENN HLNETAMSHVAED解密:先将密文分为两行T.
2021-11-17 10:37:52
644
原创 Rabbi高速流密码
1.高速流密码Rabbit加密是什么 Rabbit 是一种高速流密码,于 2003 年在 FSE 研讨会上首次提出。 Rabbit 使用一个 128 位密钥和一个 64 位初始化向量。 该加密算法的核心组件是一个位流生成器,该流生成器每次迭代都会加密 128 个消息位。Rabbit加密-Rabbit解密-在线Rabbit加密解密工具 (jsons.cn)...
2021-11-17 10:33:23
4412
原创 凯撒密码学习
1.基本信息2.python加密解密代码#解密print("*"*30) print(" 欢迎来到凯撒密码解密系统!") print("*"*30) x = input("请输入你的密文:") y = int(input("请输入公钥:")) c = '' for i in x: c += chr((ord(i)-97-y)%26+97) print("明文:",c)#加密print("*"*30) print("欢迎来到凯撒密码加密系统!") .
2021-11-17 10:06:03
133
原创 URL编码 | quoted-printable编码
其实url编码就是一个字符ascii码的十六进制。 不过稍微有些变动,需要在前面加上“%”。 比如“”,它的scii码是92,92的十六进制是5c,所以“”的url编码就是%5c。 URL编码平时是用不到的,因为IE会自动将输入到地址栏的非数字字母转换为url编码。在线URL编码解码工具-UrlEncode编码-UrlDecode解码在线工具 (jsons.cn)...
2021-11-16 19:48:54
908
原创 密码学|RSA学习
1.加密过程d必须取整数2.例子例一:#encoding = utf-8import gmpy2import binasciip = 964842302901051567659055174001042653494573763923573980064398935203985250729849139956103500916342705037010757073363335...
2021-11-16 11:48:01
177
原创 古典密码学学习笔记
1.历史古典密码阶段:1949年以前近代密码阶段:1949-1975年现代密码阶段:1976年至今2.加密方法古典密码学的加密方法主要有两大类:替代和置换,或者是两者的结合3.基本密码1.键盘布局加密这是一种比较简单也比较另类的密码,通常都是给出一堆无意义的字符,但定将这些字符按照在键盘上的布局比划一下,就可以根据形状拼出相应字符。 这类题目基本可以划归脑洞题的范围,不过由于比较简单,只要做过几个练习题,再遇到类似的题目就自然有了思路。例题:1.南邮-.
2021-11-15 10:59:44
941
原创 python|学生管理系统
#encoding=utf-8#encoding=utf-8#系统标题print("="*60)print("欢迎来到学生管理系统!")print("="*60)def printMenu(): print("1.添加学生信息") print("2.删除学生信息") print("3.修改学生信息") print("4.查询学生信息") print("5.显示学生所有信息") #手动保存 print("6.保存数据") print("0.退出系统") print("="*.
2021-11-11 10:39:41
132
原创 python|名片管理系统
#encoding=utf-8#encoding=utf-8#系统标题print("="*60)print("欢迎来到学生管理系统!")print("="*60)def printMenu(): print("1.添加学生信息") print("2.删除学生信息") print("3.修改学生信息") print("4.查询学生信息") print("5.显示学生所有信息") print("0.退出系统") print("="*60)def oneinfo(): re.
2021-11-11 10:38:27
725
原创 摩斯密码解密
#encoding = utf - 8txt = input().strip() #去掉文本两边空格if '0' in txt: table = ''.maketrans('01','.-') #把文本中的0和1替换成.、- txt = txt.translate(table).split() else: txt = txt.split() .
2021-11-10 20:14:21
600
原创 BUUCTF|pwn-jarvisoj_fm-wp
1.例行检查保护机制我们看到开启了堆和栈保护2.我们用32位的IDA打开该文件shift+f12查看关键字符串我们看到关键字符串“/bin/sh”3.我们看看main函数里面有什么我们看到如果x == 4,程序就会执行system("/bin/sh"),拿到权限这里是格式化字符串漏洞x是全局变量,位置在data段上:x_addr = 0x0804A02C我们看看参数在栈上的位置,我们发现aaaa的位置在第十一个4....
2021-11-09 21:03:35
350
原创 BUUCTF|PWN-bjdctf_2020_babystack2-WP
1.例行检查保护机制2.我们用64位的IDA打开该文件shift+f12查看关键字符串,我们看到关键字符串"/bin/sh"然后我们找到后门函数的地址:backdoor_addr = 0x04007263.我们看看main函数里面的内容我们看到第一个nbytes是有符号数,第二个nbytes就变成了无符号数我们判断这是一个整数溢出所以-1 = 42949672954.EXP#encoding = utf-8fr...
2021-11-09 20:41:25
465
原创 BUUCTF|pwn-bjdctf_2020_babyrop-wp
1.例行检查保护机制2. 我们用64位的IDA打开该文件shift+f12查看关键字符串,没有找到关键字字符串3.我们进入main函数看看发现有两个函数init():这里打印了两句话vuln():打印了一句话,然后我们看到read()函数里面读取了0x64个buf,但是buf只有0x20个字节,所以这里是漏洞4.system("/bin/sh")我们用libc计算偏移量,再计算system("/bin/sh")base_addr...
2021-11-09 20:04:32
332
原创 buuctf|pwn-铁人三项(第五赛区)_2018_rop-wp
1.检查保护机制2.我们用32位的IDA打开该文件shift+f12查看关键字符串,没有发现关键字符串3.我们查看main函数里面的内容我们发现有两个函数进入第一个函数进入第二个函数在第二个函数里面发现buf溢出,buf有0x88个字节,但是read()函数读取了0x100个字节4.system("/bin/sh")我们在文件中没有找到可以拿到shellcode权限所以我们要用libc,计算偏移量,拿到shellcode权限...
2021-11-09 19:23:13
799
原创 buuctf|pwn-ciscn_2019_ne_5-wp
1.例行检查保护机制2.我们用32位的IDA打开该文件shift+f12查看关键字符串我们看到flag就是我们输入的log3.我们看看main函数里面有什么我们看到第一个条件s1 == 'administrator'进入过后,v3是你想要选择执行的内容ADDLog():我们看到这里是输入log,跟我们的flag有关系 a1是我们外面传进来的src = 48,读取128个就造成了溢出...
2021-11-09 16:14:58
268
原创 buuctf|pwn-others_shellcode-wp
1.例行检查保护机制2.我们用32位的IDA打开该文件shift+f12查找关键字符串,没有看到有用的字符串3.我们进入main函数看看我们进入第一个函数看看,没看到什么有用的信息我们再进入第二个函数看看,我们看到了熟悉的身影除此之外我们并没有看到什么有用的信息4.EXP我们先试试用nc能不能打通,因为getShell()函数里面有权限nc node4.buuoj.cn 28625...
2021-11-09 11:31:10
199
原创 buuctf|pwn-ciscn_2019_n_5-wp
1.例行检查保护机制2.我们用64位的IDA打开该文件shift+f12查看关键字符串,没有看到‘/bin/sh’可以拿到权限类的字符串3.我们进入main函数看看我们可以看出gets(text,name)这里造成溢出我们再去看看name,然后发现name是bss段上的全局变量又因为该题没有system("/bin/sh")的字样,所以我们可以向bss段写入shellcode拿到权限shellcode = asm(shellcraft.sh()...
2021-11-09 11:13:46
300
原创 buuctf|pwn-jarvisoj_level2_x64-wp
1.例行检查保护机制只开启了堆保护2.我们用64位的IDA查看该文件shift+f12查看关键字符串,我们看到关键字符串“/bin/sh”我们双击“/bin/sh”,bin/sh的地址为:0x0600A903.查看main函数里面的内容进入vulnerable_function()函数我们看到buf只有0x80个字节,但是下面read()里面读取了0x200个,这里造成了溢出4.system("/bin/sh")才能拿到权限我们找...
2021-11-08 21:43:14
511
原创 buuctf|pwn-[HarekazeCTF2019]baby_rop-wp
1.例行检查我们看到该文件开启了堆保护2.我们用64位的IDA打开该文件按shift+f12查看关键字符串,我们看到“/bin/sh”这个关键字符串我们双击查看它的位置:0x06010483.我们去main函数里面看看我们发现v4 = var_10,他的地址为:0x10我们要拿到权限:system("/bin/sh")所以我们要找到system地址:0x0400490我们双击_system,system在plt表里面4...
2021-11-08 20:49:56
271
原创 buuctf|pwn-not_the_same_3dsctf_2016-wp
1.检查保护机制我们看到开了堆的保护2.用32为的IDA打开该文件shift+f12查看关键字符串,我们看到有‘flag.txt’关键字符我们就查找出后门函数的地址:0x080489A0我们看到读取flag.txt,注意fgets函数,就是在f14g里面读取45个字符,我们猜测这就是flag3.我们查看main函数里面有什么我们看到gets(&v4)有个溢出,我们看到v4地址是0x2D4.rop ...
2021-11-08 20:12:06
345
原创 CTFSHOW|pwn-数学99-wp
1.检查保护机制2.我们用64位的IDA打开该文件查找关键字符串看到有“cat flag”3.我们先预览一遍程序main函数我们看到要if语句里面的三个函数条件为真第一个函数第二个函数第三个函数在第三个函数里面条件为真就可以拿到flag(handler)4.第一个函数:sub_9C0()条件:因为输入变量s是有符号数的int型:0~2147483647 -2147483648~-1所以8 -(-...
2021-11-08 16:44:39
991
1
原创 C语言|考试系统(函数调用版本)
#include <stdio.h>#include <windows.h> #include <string.h> void welcome(){ system("color FD"); system("title 考试系统"); printf("\n\n\n"); printf("************************\n"); printf("********考试系统********\n"); printf("*******.
2021-11-06 15:01:02
2317
原创 PWN|栈溢出总结笔记
1.32位判断libc版本32位: b'a' * offset + p32(xx@plt) + p32(ret_addr(main_addr或者_start_addr)) + p32(xx@got)getshell: b'a' * offset +p32(system_addr) + b'a'*4 + p32(str_bin_sh)2.64位判断libc版本64位: b'a' * offset + p64(pop_rdi_ad...
2021-11-04 17:02:37
319
原创 C语言|考试系统代码
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>int main(){ char userName[30]; char passWord[30]; char userName1[30]; char passWord1[30]; char exam[5][7][50] = { {{"计算机能直接执行的程序是( )。"}, {".
2021-11-04 16:42:50
3680
4
原创 整数漏洞学习笔记
1.漏洞简介整数就是没有小数的数字在计算机中,有符号数用二进制表示。负数表示就是将二进制最高位来表示数字的符号,最高位为1表示负数,最高位为0就表示正数。无符号数就是没有负数当我们尝试将一个无符号数变量输入65536时,就会溢出,返回值为0输入65537时,返回值为1当有符号数溢出时,会从最小的值开始,-xxxxxxxx然后依次+1整数类型表数据类型 大小(字节) 无符号数范围 有符号数范围 short int 2...
2021-11-03 21:09:13
927
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人