pwntools
1. 常用交互操作 远程连接 remote(host,port) send(string) 发送string sendline(string) 发送string及换行符 sendafter(magic,string) 接收到magic后发送string sendlineafter(magic,string) 接收到magic后发送string及换行符 recvn(N)接受N字节字符 recvline()接受一行输出 recvlines(N)接受N行输出 recvuntil(magic)一直接受直到出现magic clean()丢掉所有缓冲 eg1: moectf NotEnoughTime 主要就是以字节传输转成字符串a.decode要注意,然后就是b’ ‘要注意 123456789101112131415161718192021222324from pwn import...
计算机网络
1. 网络,互联网和因特网12341. 网络由若干结点和连接这些结点的链路组成2. 多个网络可以通过路由器连接起来,形成互联网3. 因特网是世界上最大的互联网络+ ISP 互联网服务提供者 2. 三种交换方式 电路交换 1建立连接,通信时延小 报文交换 1先存储到结点交换机,不需要建立连接,需要较大存储缓存空间 分组交换 12将报文划分成若干个等长的数据段,然后给各数据段添加首部构成分组无需建立连接,减少出错概率,加速传输 3. 计算机网络的定义和分类 定义 1互连,自治(独立计算机),集合(至少两台) 分类 1234按交换技术分类:1. 电路交换网络2. 报文交换网络3. 分组交换网络 123按使用者分类:1. 公用网2. 专用网 123按传输介质分类:1. 有线网络2. 无线网络 12345按覆盖范围分类1. 广域网WAN2. 城域网MAN3. 局域网LAN4. 个域网PAN 12345按拓扑结构分类:1. 总线型网络2. 星型网络3. 环形网络4. 网状型网络 4....
取证
0. 小知识1. MagnetRAMCaptu 1MagnetRAMCaptu是一个获取内存镜像的软件
鲲鹏杯决赛
task3 筛选http,随便打开一个查找tcp流,在流2035找到关键信息 1把这个扔进base64解码,得到答案 calc_revenge还是沙箱题 1nc进去,先输一堆乱七八糟的试试水,发现出不来,一直冒hacker 1之后试了一堆代码,发现𝓮val(inp𝓾t())这个代码刚好进得去 1再次试试open("flag").read,还是不行 1又再𝓮val(inp𝓾t())试了初赛的breakpoint(),刚好又进去了 12最后还是找,输入__import__('os').system('sh')刚好又进去了,最后ls找到里面有flag名字,cat 过去就得到了flag
流量分析
过滤 1http.request.full_url contains ".config.php" or http.response_for.url contains ".config.php" token的中间带了个点就是jwt认证方式 1前面是header,中间是base64加密的,第三部分是签证,知道token之后就扔进jwt.io进行解密 这句话的意思是把1.c改名为looter.c 把looter.c放进security里 把looter.so放到pam.d里 当分析很多的时候,我们要选择 找账号密码 123456除了 www-data,还有许多其他常见的用户和权限设置,包括:root:系统管理员,拥有所有权限,能够执行任何操作。nobody:无特定权限的用户,通常用于不需要特殊权限的服务。dbus:用于D-Bus消息总线的用户,管理系统和应用间的通信。 1frpc是代理客户端
鲲鹏杯初赛
RE_signin题目写opcode,在网上搜了下开始看 12写点关键的:这里意思是base=i%4如果base==0,跳转226,下面类似的就不写了 123下面的意思是 temp += ((ord(flag[i]) % ord(key[i % 14])) 同理下面还有*/^操作 123456789101112131415161718最后分析完毕写出脚本key = 'mrl64_l0v3Miku'cipher = [221, -25, 9072, 94, 163, -17, 10260, 0, 198, 16, 8547, 13, 158, -22, 9701, 29, 193, 41, 5096, 13, 219, 27, 6018, 125, 172, 15, 5243, 45, 182, -19, 5292, 84, 149, -41, 10476, 4, 174, 51, 4235, 12]flag = ''for i in range(len(cipher)): base = i % 4 key_char...
moectf
xtea 1通过分析我们看出这是两个tea加密,只要两次tea即可解出 123456789101112看tea里面,这个逆向很简单 v5 = *a3; v6 = a3[1]; delta = (( - 855655493)) * 32; for (unsigned int i = 0; i < round; i++) { v6 -= ((key[(delta >> 11) & 3]) + delta) ^ (v5 + ((v5 >> 5) ^ (16 * v5))); delta += 855655493; v5 -= (key[(delta & 3)] + delta) ^ (v6 + ((v6 >> 5) ^ (16 * v6))); } *a3 = v5; a3[1] = v6; 12通过判断语句,找到加密后的flag,注意是小端序存储,也就是0x269669a3 3d0b78bd...
crackme160
1由于有一些因为病毒打不开暂时跳过 1.Daniel-rj1.1 爆破 1要爆破其实很简单,通过dbg找到这个提示字符串 1我们分析上下文,发现这个jne是判断失败的关键,直接把他nop即可 1.2 算法1一般来说有循环的会存在算法 1在附近找到这个,在一步步分析后,发现用户与密码的关系,就是+5 2.Bjanes 1依然是先找字符串
记一记汇编小知识
寄存器 所有寄存器都是16位 首先介绍通用寄存器AX 它能够保留2^16-1的数据,用十六进制表示就是FFFFH eg: 在AX中存储18D —12H —10010B 在低位10010高位全是0,就像这样 有一个问题: 8086上一代CPU的寄存器都是八位的,怎么保证程序的兼容性 通用寄存器均可以分为两个独立的8位寄存器使用 例如:AX可以分为AH和AL,AX,BX CX,DX都是如此 字 8086是16位CPU 就是说8086的字长是16位 一个字可以存在一个16位寄存器中 mov和add指令 add al,bl 意思是把bx的低八位和ax的低八位相加结果给al即ax的低八位 同理ah为ax的高八位 最后一句需要注意 al位置的值发生溢出是,不会向ax进位,直接丢弃 确定物理地址的方法 内存的分段表示法!!! 内存并没有分段,段的划分来自CPU 偏移地址16位,所以只能寻址64k,范围为0~ffffH 段地址很重要,用专门的寄存器存放段地址 有四个段寄存器 CS–代码段 DS–数据段 SS–堆栈段 ...
xdb学习
一.xdb基础篇1.逆向准备1.1 xdb简单使用 点击左上角 点击附加 将要的文件附加进去 1.2.实现用x32dbg分析阳光 只是用(杂交版)学习动态调试 先用ce将阳光的基址找出 即 1234567阳光基址:[PlantsVsZombies-nosig+vmem+vard.exe"+2A9EC0]+768]+5560]种植卡片时访问的地址:008AF806 - 89 B7 60550000 - mov [edi+00005560],esi(在Xdbg有两种方式寻找地址1:用ctrl+G寻找008AF8062.直接寻找断点,上次作业保留的)减号可以返回上一页 12345678910111213141516171819202122230041BA60 | 56 | push esi |0041BA61 | 8BB7 60550000 | mov esi,dword ptr ds:[edi+5560]...








