自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 django.db.utils.OperationalError: (1045, “Access denied for user ‘root‘@‘localhost‘ (using password:

解决:django.db.utils.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: NO)")

2022-09-14 23:43:48 577 1

原创 加密算法--RC4

RC4在ctf中经常出现,RC4算法比较简单,这里做一下总结RC4加密是一种对称加密算法。所谓对称加密是指:采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。简而言之,就是:加密过程和解密过程相同,使用同一个密钥就可以在密文和明文之间转化c=RC4(key,m)m=RC4(key,c)RC4是一种流加密算法。流加密,是对称加密算法的一种,加密和解密双方使用相同伪随机加密数据流(pseudo-randomstream)作为

2021-07-23 17:41:20 1392

原创 nctf复现 re1

彩笔一个,还请大佬多多指正这道题说简单也不简单,有点小难度,主要是他的代码混淆太恶心了首先ida打开,f12关键字,转到main函数底下wrong的地方进行判断,把数据弄下来a=[0xC6, 0x6A, 0xC0, 0x27, 0xEB, 0xCA, 0x65, 0x02, 0x61, 0xCA, 0x68, 0x27, 0x6B, 0xE2, 0xC0, 0xE0, 0x00, 0x80, 0x22, 0x27, 0xE1, 0xA1, 0x02, 0x27, 0x63, 0x4B,

2020-11-28 01:43:32 479

原创 buuctf刷题记录25 [WUSTCTF2020]funnyre

太巧了,昨天刚看了有关angr的视频今天就碰到有关的题目了这道题考察两点吧:1.简单的花指令去除 2.在有限域上简化无壳,ida64打开,发现不能f5,而且也没有main函数,判断应该是用了混淆从上往下看汇编代码,找到第一处问题这里jz和jnz一看就有问题,下面的数据也是胡扯,然后下面的这些没标红的地方都是一个样应该吧上面错误的地方改成下面的样子,大概有四五处吧,nop掉,p声明函数,得声明两处然后f5得到反编译定义了300多个变量,进行了好多好多运算,直接算肯定是算不出来的,然后就

2020-08-08 21:54:15 1499 4

原创 buuctf刷题记录24 equation

这道题又一次加强了我的z3题目有个html打开得到根据题目提示这个是f**k加密可以到在线网站上一个个去解密,但是太麻烦了,用了个网上的脚本,得到最后有一个常量没解,放到上面网站解出81头疼,全是解方程,可以用z3来解构造脚本麻烦死了,from z3 import *if __name__ == "__main__": s = Solver() l = [Int('l[%d]' % i) for i in range(42)] #定义l[0] - l[41

2020-08-08 21:52:55 452

原创 buuctf刷题记录23 [ACTF新生赛2020]Oruga

无壳,拖进ida,然后进入sub_78A这个关键函数里去看,有点迷宫的感觉,起点为(0,0)这里”0“是我们移动停止的条件,注意v2+=v4这一句,由于这是在while循环里的,所以他是一直以同一个方向移动的,直到碰到了非0的东西,很类似于象棋里面的车,但一次必须走到头进入数据word_201020看然后构造脚本,画出来这个迷宫,#include <stdio.h>char maze[256] = { 0x00, 0x00, 0x00, 0x00, 0x23, 0x0

2020-08-08 21:52:44 308

原创 buuctf刷题记录22 [WUSTCTF2020]level4

无壳,ida打开,上网查了查traversal然后看到最上面上面有左右指针,感觉有点像二叉树遍历打开type1和type2结合两个函数,第一个应该是中序遍历,第二个应该是后序遍历然后去找字符串,找半天没找到,就运行一下看看会不会出来这样一道re题就变成了一道数据结构题,画出来这个二叉树wctf2020{This_IS_A_7reE},真费劲flag为: flag{This_IS_A_7reE}...

2020-08-08 21:52:31 397

原创 buuctf刷题记录21 [网鼎杯 2020 青龙组]jocker

今天挑战一下,结果最后还是看了别人的wp才写出来的无壳,ida查看发现不能f5,原因堆栈不平衡进行栈指针修改修改出错的地方的栈指针偏移,快捷键alt+k,值改为0然后就能f5了,逻辑也不难,首先输入长度是24位,然后有三个关键函数 wrong(),omg(),encrypt()先看wrong和omg,wrong函数,对输入的前24个进行加密omg函数比较wrong加密结果和unk_4030C0地址的值是否相同把unk_4030C0地址的值考出来,写个脚本s=[102, 1

2020-08-01 18:42:15 862

原创 buuctf刷题记录20 [ACTF新生赛2020]Universe_final_answer

无壳,进入ida,函数逻辑挺简单的,但是这个算法我是真没见过网上查了查,这些题用z3库来写,顺便学了学怎么用这个库from z3 import *s = Solver()v1 = Int('v1')v2 = Int('v2')v3 = Int('v3')v4 = Int('v4')v5 = Int('v5')v6 = Int('v6')v7 = Int('v7')v8 = Int('v8')v9 = Int('v9')v11 = Int('v11')s.add(-85 *

2020-08-01 18:34:35 652

原创 buuctf刷题记录19 buuctf FindKey

个人感觉这个题出的不好,md5根本找不到(是我太菜)经典无壳,拖进ida,f12找到关键字符串,发现左边地址是红色的,应该是用了花指令,果然两个一样的指令连在一起,把下面的去掉,按p声明函数,再f5看反编译程序逻辑并不是太难,有两处关键运算和一个关键判断第一个关键运算是将输入的pbdata与v16进行异或,最后与v20进行比较逻辑很简单,直接写脚本,得到第一个字符串:c8837b23ff8aaa8a2dde915473ce0991然后如果直接按照第二个关键运算算的话,算不出来看别人的wp

2020-08-01 18:30:20 600 3

原创 buuctf刷题记录18 [WUSTCTF2020]level3

经典无壳,拖进ida最后输出的里面有衣穿加密字符串,一看就知道是base加密的,然后提上又提示是base64加密,拿去解密发现不对,感觉应该是吧base64的码表改了然后找半天没找到那个函数,然后找到这个奇怪的函数,果然是吧码表换了写出脚本,得到改变的码表然后根据之前的加密字符串,再写脚本import base64import stringstr1 = "d2G0ZjLwHjS7DmOzZAY0X2lzX3CoZV9zdNOydO9vZl9yZXZlcnGlfD=="strin

2020-08-01 18:27:10 770

原创 buuctf刷题记录17 [GUET-CTF2019]number_game

ida打开进入主函数先看第一个if里面的函数首先是判断输入长度是否为10,然后逐个检查输入的字符是否是在0到4之间然后我们看主函数中第二个if里的函数sub_400917自己看没看懂…看了看别人的wp才知道这是个数独游戏(第一次接触这种题),这个是个5*5的数独游戏其中行和列都不能有重复的14#2330#1#0#23##3##042##1就是这个样子,不考虑中间那些函数,我们应该输入0421421430,输入以后不对,应该是中间的函数做了某些调换或者其他操作然后,sub_40

2020-08-01 18:20:50 486

原创 buuctf刷题记录15 [FlareOn6]Overlong

这道题挺迷的,看了别人的wp才知道有这种出题方式没有加壳,ida打开只有三个函数main函数也特别简单,就是v4先读取unk_402008这个地址的数据,读28位,经过sub_401160函数的运算然后给了text,最后输出text然而问题点就是unk_402008不止28个一共有175个数据(b7-08)再结合怀疑他没有处理后面的数据,于是想到去修改这个程序,让他读175位这里没有用ida,因为改完以后我不会保存用od去改,相对应的机械码,直接修改二进制码机械码为 6A 1C

2020-08-01 18:11:53 857

原创 buuctf刷题记录14 [GKCTF2020]BabyDriver

迷宫题的新花样打开感觉就是个迷宫题然后根据判断条件,#应该是终点,o应该是起点有了迷宫了,就差上下左右走的条件了,这里我看了好长时间没看出来,看了别人的wp才知道这里由于是sys文件,是由键盘过滤驱动获取键盘扫描码来控制上下左右,而不是ascll码第一次知道很容易就知道上下左右分别是IKJL所以路径为LKKKLLKLKKKLLLKKKLLLLLL题里面又提示flag是其路径的md5的32位小写,故得到flag:flag{403950a6f64f7fc4b655dea6969978

2020-08-01 18:08:56 555

原创 buuctf刷题记录13 [HDCTF2019]Maze

第一次接触花指令,搞了一下午才弄懂查壳,是upx加壳,脱壳后,拖进ida,发现无法f5可以看出这应该是关键代码的一部分。这里jnz跳转到了下一行代码,相当于没跳转没什么用,而下面的call near ptr 0EC85D78Bh调用了一个不是地址的地址,可以推断出这段代码添加了花指令,IDA分析失败了。可以确定这个jnz指令是花指令,还有下面的call指令。先将jnz指令nop掉。然后这个call还是有问题之后就是这个call指令,不能全部nop,因为后面那个东西可能是有效代码。摁d将

2020-08-01 18:04:51 513 2

原创 buuctf刷题记录12 [FlareOn4]IgniteMe

没有加壳,打开有两个关键函数,sub-4010f0和sub-401050看到两个’\n’,’\t’猜想这个sub-4010f0函数应该是进行输入和排除掉’\n’,’\t’再看sub-401050:sub_401050函数就是将字符串逆向做了异或操作之后,与已知字符串byte_403000对比。关键是这里的v4从代码不好直接求出来,动调查看这里的a1就是v4,可以看到是4脚本:#include <stdio.h>int main(){ int i; char v4

2020-08-01 17:59:14 424

原创 buuctf刷题记录11 [MRCTF2020]Transform

查壳后无壳,ida打开,逻辑很简单根据最后的判断条件可以反推说明一点,dup是所以上面dword_40f040最后那个 8 dup(0) 的数据不是8,而是零(我之前按照8搞的一直是错的)#include <stdio.h>int main(){int i;char c[33];char a[]={0x09,0x0a,0x0f,0x17,0x07,0x18,0x0c,0x06,0x01,0x10,0x03,0x11,0x20,0x1d,0x0b,0x1e,0x1b,0x16

2020-08-01 17:54:30 521

原创 buuctf刷题记录10 [ACTF新生赛2020]usualCrypt

ida打开,进入main函数有一个关键函数,和一个关键比较先进入关键函数里面最开始有一个sub_401000()函数,进入后感觉有点像base64加密,然后这个函数是变换base64的码表,写脚本将变换后的码表求出来#include <stdio.h>int main(){char b[]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";char c;int i=6;print

2020-07-30 17:19:01 896

原创 buuctf刷题记录9 [BJDCTF2020]BJD hamburger competition

打开看是一整个程序,刚开始感觉和那个坦克大战有点像(小憨包笑死)怀疑是根据选择不同的材料来达到某种条件然后输出flag先找到c#的资源文件dnspy打开点开以后果然是根据根据点击材料来控制是否输出flag,但是直接看最后几段代码,发现flag先sha1加密进行判断,再输出时md5加密根据他的数据可以反推出str,进而求解flagstr为1001,md5加密都试了一遍以后发现都不对,再看看代码他这个md5加密是取得前20个字母,Substring是截取字符串,Tostring(“

2020-07-30 17:07:42 377

原创 buuctf刷题记录8 [ACTF新生赛2020]rome

ida打开,逻辑很清晰 v15 = 81; v16 = 115; v17 = 119; v18 = 51; v19 = 115; v20 = 106; v21 = 95; v22 = 108; v23 = 122; v24 = 52; v25 = 95; v26 = 85; v27 = 106; v28 = 119; v29 = 64; v30 = 108; v31 = 0; printf("Please input:"); scan

2020-07-30 17:03:43 832 2

原创 buuctf刷题记录7 [GWCTF 2019]xxor

关键运算都在main函数根据提示,我们要输入6次数据,在经过两次处理后的得到的数据,将其转成16进制再变成字符串第一个处理这是将输入的六个数据每次取两个,分别给dword_601078和dword_60107c,然后通过sub_400686这个函数进行运算byte_601060里是四个数据 : 2 2 3 4进到sub_400686内部它里面是递加,我们可以递减来实现解密再看第二处通过逻辑直接可以推出改变后的6个数xorm[0] = 3746099070;xorm[1] = 550

2020-07-30 16:58:31 1003 1

原创 buuctf刷题记录6 [FlareOn4]login

打开是一个html文件,打开看是一个典型的输入验证问题<!DOCTYPE Html /><html> <head> <title>FLARE On 2017</title> </head> <body> <input type="text" name="flag" id="flag" value="Enter the flag" /> &

2020-07-30 16:54:47 721

原创 buuctf刷题记录5 [V&N2020 公开赛]CSRe

C#程序,且用Eazfuscator.NET混淆了代码,于是用使用de4dot工具进行处理处理完后用dnspy反编译,找到main函数(我找了老长时间,发现可以直接程序入口)最后有提示:flag{str+text},那么再依次求出str和textClass3.smethod_0查看发现是对字符串进行sha1加密加密后与字符串进行比对所以 str为1415 text为turnflag为 flag{1415turn}...

2020-07-30 16:51:09 280 2

原创 buuctf刷题记录4 [GUET-CTF2019]re

先查壳,发现是upx加壳,脱壳后,拖进ida里面查看逻辑很简单,很容易就找到关键函数if ( 1629056 * *a1 != 166163712 ) return 0LL; if ( 6771600 * a1[1] != 731332800 ) return 0LL; if ( 3682944 * a1[2] != 357245568 ) return 0LL; if ( 10431000 * a1[3] != 1074393000 ) return 0LL

2020-07-30 16:47:29 717

原创 buuctf刷题记录3 [2019红帽杯]easyRE

先查壳,没有壳,拖进ida,f12大法发现敏感句子,进入,代码如下signed __int64 sub_4009C6(){ const char *v0; // rdi signed __int64 result; // rax __int64 v2; // ST10_8 __int64 v3; // ST18_8 __int64 v4; // ST20_8 __int64 v5; // ST28_8 __int64 v6; // ST30_8 __int64 v7;

2020-07-30 16:44:05 408

原创 buuctf刷题记录2 相册

下载开是一个apk用jeb打开,因为题目提示是要找到邮箱,所以在bytecode里面找mail关键字按ctrl+f弹出搜索框,这里要选环绕搜索因为程序搜索是从上到下搜索,如果中途遇到smail代码段开始搜索,是搜索不到上面的字符的,所以要打开环绕搜索可以在全部smail代码中搜索找到sendMailByJavaMail这个函数,这是个关键函数在这个里面,c2的MALUSER、MAILPASS、MAILFROME都给了v1而v1是来进行操作的,所以我们看一下c2这三个值这三个都是先为空,后

2020-07-30 16:41:28 310

原创 buuctf 刷题记录1 [GWCTF 2019]pyre

下载后是一个pyc文件,在线反编译一下得到源码print 'Welcome to Re World!'print 'Your input1 is your flag~'l = len(input1)for i in range(l): num = ((input1[i] + i) % 128 + 128) % 128 #元素+下标,与128求余,确保在128范围内其中第二个%128没什么用,干扰作用 code += numfor i in range(l - 1):

2020-07-30 16:35:49 293

原创 [第五空间]re nop题目详解

[第五空间]nop第一次写这种题,看网上其他大佬的代码处理有点晕,这里提供一种不同的思路(xky太强了)ida打开,发现f5反编译的代码太诡异,直接输入完东西后就跳地址,应该是用了花指令什么的来混淆,所以直接看汇编代码我们从最开的输入一步步分析,这里OFFSET是将数值回送变量或标号的偏移地址值,所以意味着我们这里是要输入数字的(从%d也可以看出)然后把我们的输入给了number(这个number是我自己改的,方便看)然后按照程序顺序来看,number给了eax,eax自加一,然后跳到lo

2020-07-08 15:04:04 297

原创 攻防世界maze 题目讲解

首先打开题目看一下提示在这里我们看到题目上说到有“迷宫“二字”,先记下来。查壳后,发现没有加壳放到ida里面看__int64 __fastcall main(__int64 a1, char **a2, char **a3){ signed __int64 v3; // rbx signed int v4; // eax bool v5; // bp bool v6; /...

2020-05-01 13:30:11 462

原创 WIN32窗口程序基本结构

前两天老师叫写一个窗口化程序,突击了一下,这里把win32基本结构的代码列出来,方便以后拿来直接使用。#include <windows.h>LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);//窗口函数的声明int WINAPI WinMain(HINSTANCE hInstance,//程序化当前实例句柄 ...

2020-04-03 16:09:40 264

空空如也

空空如也

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

TA关注的人

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