逆向攻防世界CTF系列9-no-strings-attached
逆向攻防世界CTF系列9-no-strings-attached wsccmp:应该是个比较函数,相同为0,输出“Success! Welcome back!”,点进unk,从上往下看的车。 不知道decrypt是个什么,查了下,是解密的意思。 解法1:选中shift+e 把s和A2转出,目标程序是 32 位 Ubuntu ,所以 wchar_t 表示 \0 占 4 字节,后面 4 个是截止符,不代入计算。(64位也是4字节) 12345678910111213141516171819202122232425262728293031323334353637#include <stdio.h>int main() { unsigned char s[] = { 58, 20, 0, 0, 54, 20, 0, 0, 55, 20, 0, 0, 59, 20, 0, 0, 128, 20, 0, 0, 122, 20, 0, 0,...
保研面试(英语)
保研面试1.读过哪些书,哪些著作,哪些期刊 A Federated Learning Paradigm for Heart Sound Classification FedProto: Federated Prototype Learning across Heterogeneous Clients Communication-Efficient Learning of Deep Networks from Decentralized Data 从分散的数据中进行深度网络的通信高效学习 没听清:sorry, could you repeat your question again? ==Please introduce your hometown== ==Please introduce your collage school.== ==Please introduce your parents== ==What’s your...
逆向攻防世界CTF系列8-getit
逆向攻防世界CTF系列8-getit 其中 123strcpy(filename, "/tmp/flag.txt"); #此行代码将指定文件的路径存储在 filename 中。stream = fopen(filename, "w"); #stream 是一个 FILE* 类型的指针,指向打开的文件。fprintf(stream, "%s\n", u, v5); #是一个格式化输出函数,用于向指定的文件流写入格式化的数据。 因此这是写出flag的内容到txt,我们关注上面的代码 12345678v9 = __readfsqword(40u);LODWORD(v5) = 0;while ( (signed int)v5 < strlen(s)){ if ( v5 & 1 ) v3 = 1; else v3 = -1; *(&t + (signed int)v5 + 10) = s[(signed int)v5] + v3; LODWORD(v5) = v5 +...
Spring5
Spring5一、Spring 框架概述 Spring 是轻量级的开源的 JavaEE 框架 Spring 可以解决企业应用开发的复杂性 Spring 有两个核心部分:IOC 和 Aop IOC:控制反转,把创建对象过程交给 Spring 进行管理 Aop:面向切面,不修改源代码进行功能增强 Spring 特点 方便解耦,简化开发 Aop 编程支持 方便程序测试 方便和其他框架进行整合 方便进行事务操作 降低 API 开发难度 ==Spring5 入门案例== jar包地址:https://repo.spring.io/release/org/springframework/spring/ 创建普通类,在这个类创建普通方法 12345public class User { public void add() { System.out.println("add......"); }} 创建 Spring...
逆向攻防世界CTF系列7-logmein
逆向攻防世界CTF系列7-logmein==重要知识点:不同ida版本的反编译结果不同!!!== 64位,main函数 目的是执行最后的这段代码 审计代码,v3长度>=v8长度 if ( i >= strlen(v8) ) sub_4007C0(); 则可知v3长度必须等于v8长度,否则下标i会>=v8 ==看到下面那段代码的时候发现怎么都解释不通,后来发现了一个震惊小白的事,就是不同版本的ida反编译的伪代码不同,我刚才用的是idapro 8.3 然后去试了idapro7.7 和idapro 7.0,发现7的反编译结果才是正确的,如下图== 用上了v6和v7,而之前的伪代码都没有用上!!!! 让我们再解读一下下面那个语句吧: 重点是:(_BYTE...
SpringBoot基础篇
SpringBoot基础篇一、Springboot介绍 基于SpringBoot官网创建项目,地址:https://start.spring.io/,**需联网** 基于阿里云创建项目,地址:https://start.aliyun.com 示例如图 建议选定2.5.7版本 隐藏文件 1.1...
SpringMVC
SpringMVC一、SpringMVC简介1.1 什么是MVCMVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分 M:Model,模型层,指工程中的JavaBean,作用是==处理数据== JavaBean分为两类: 一类称为实体类Bean:专门存储业务数据的,如 ==Student、User== 等 一类称为业务处理 Bean:指 ==Service 或 Dao...
逆向攻防世界CTF系列6-simple-unpack
逆向攻防世界CTF系列6-simple-unpack 发现被加壳了,要脱壳,根据信息upx去寻找,找到脱壳工具脱壳,这里我提供一个,当然你也可以根据exeinfo后面的提示 https://pan.xunlei.com/s/VNu8zizHwjh-TCsW336-Hl0jA1?pwd=f3u5# 没壳了,扔进IDApro 64位,shift+F12找到flag flag{Upx_1s_n0t_a_d3liv3r_c0mp4ny}
GDB基本使用及pwn常用命令
GDB基本使用及pwn常用命令i r查看寄存器 start 运行程序,停在 main 函数的第一行。 run 从程序的入口点开始执行,并会一直运行,直到.程序正常结束。 b main ,b *(0xdsds)设置断点 i b查看断点,d main删除断电,disable b 2,让断点失效。enable b 3 si会进入xx方法实现的里面 ni是下一步。finish步出 c继续 显示从地址0x100开始的10个十六进制数:x/10x 0x100 显示从寄存器$rax开始的4个无符号十进制数:x/4uw $rax 显示字符数组str的内容,直到遇到’\0’结束:x/s str x/20g $rbp-0x20:这个命令表示从地址$rbp-0x20开始,以十六进制格式打印20个g大小的内存单元。这里的g通常代表8字节(64位)的巨量(giant word)。所以它会打印20个8字节的值,总共160字节的数据。这种格式通常用于查看较大数值或指针地址(在64位系统上指针也是8字节)。 x/20b...
逆向攻防世界CTF系列5-open-source
逆向攻防世界CTF系列5-open-source12345678910111213141516171819202122232425262728293031323334#include <stdio.h>#include <string.h>int main(int argc, char *argv[]) { if (argc != 4) { printf("what?\n"); exit(1); } unsigned int first = atoi(argv[1]); if (first != 0xcafe) { printf("you are wrong, sorry.\n"); exit(2); } unsigned int second = atoi(argv[2]); if (second % 5 == 3 || second % 17 != 8) { ...









