自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SUCTF Re

1.SignIn一入眼,熟悉的大数,RSA加密。因为n位数十分小,因此可以直接分解n,如下。import gmpy2import libnume = 65537p = 366669102002966856876605669837014229419q = 282164587459512124844245113950593348271n = 1034610359008169141213901012990490444139504051737121704341616865398781609845

2021-02-09 16:27:01 211

原创 [2019红帽杯] Reverse复现

1.EasyRewpELF文件结构:主要考察对ELF各Section的作用熟悉程度。根据在字符串追踪引用至该函数中。该函数可以得到一个一个提示,已经一个无用的网站。提示信息大意为前4个字节为flag,后面有用。其实到这步的时候很容易卡在,我动调半天没发现什么,最好看其他师傅WP基本思路都是从.data段的定义的变量入手,追踪到关键处。其实这个思路并不明显,我自己思考了一下似乎也没有什么好的想法,也只有追踪可以全局变量这一个了,当然如果你足够有毅力也可以注意查看每一个函数。最终关键函数在.f

2021-01-18 17:20:22 318

原创 使用aheadllib进行dll劫持时遇见的一个巨坑

同过dll劫持生成的dll文件存在一个巨大的坑,系统dll路径加载有错误!64位Windows系统下,GetSystemDirectory函数默认加载的系统dll路径时,默认加载的是C:\Windows\System32这个路径,而这个路径下的dll全是64位的,如果是使用32位dll进行劫持的话简直要命,查半天资料才知道这个函数路径加载有问题。最稳的办法就是手动写准确的路径。...

2020-10-29 17:11:35 350 1

原创 CM3——又一个CM

难度:我无法判断思路:看到这个界面的思路,其实已经很明确了。首先追下读取文本框内容比较的关键点,看下是否可以直接取出注册码;如果不行,只能追按钮事件的函数,看看具体点。后面发现有反调试,以及文件md5校验,全部过之即可。开始:过反调和文件校验:思路如下,可以在MessageBox下断,回追关键点;也可以查看堆栈调用,从退出函数会追,最终都会殊途同归,不过这里既然有MessageBox大概率会比追退出函数便捷,经过层层的回追,发现反调试是在易语言的消息分发函数中实现的,于是下断往里追,改三个.

2020-10-09 20:05:42 223

原创 CM2——52上的一个名为“沙雕CM“

破解要求:题主表明无花无壳无暗桩这个其实按照要求,其实比较好破解,直接push窗体,一会的事情。不过如果要逆算法就得花点时间,算法的追踪直接在易语言事件处理函数出下断,追踪即可。push窗体破解如下:算法逆向过了。...

2020-10-09 17:32:47 147

原创 (1)52上一个简单的CM

难度:简单看程序,结构应该是非常简单的。读入文本框内容并且与key进行比较,尚不清楚key处是否加密比较,试试看。有个UPX壳,直接带壳分析吧。易语言程序特征。直接定位key比较处,下断。...

2020-10-09 11:32:44 64

原创 buuoj pyre wp

给了给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 code += numfor i in range(l - 1): code[i] = code[i] ^ code[i + 1]print codecode

2020-10-06 17:43:54 184

原创 attachment WP

给了个Windows桌面程序,用win32写的。这个题目异常简单,进行字符串搜索就会发生关键线索。只需要简单分析下getflag按钮弹出的Dialog消息处理函数。函数如下:flag:BJD{1999902069a45792d233ac}

2020-10-06 17:18:39 673

原创 CrackRTF WP

一道有点心思的Re题目,我也被最后一步坑了。程序总体流程:获取第一次输入,并且输入只能是6位的数字,并拼接上"@DBApp"调用win32API进行加密,第一次选择的是sha1加密,加密完成后与一个hash值进行比较,注意这给是值比较不是字符串比较,因此写脚本的时候要注意一下大小写。第二次,故技重施,不同的是这次的输入只是将长度限制位6个字符而不仅限于数字,并且拼接上sha1爆破出来的结果,随后再次调用WIN32 api进行加密,这次是进行md5加密。不过因为,这次由于第二次输入条件的宽松限制,md

2020-10-06 17:03:31 195

原创 C/C++bug记录

C环境:Ubuntu 16.04编译器:GCCgoto语句标签之间的区域不能存在声明语句用C语言在Linux上写轮询的时候,遇见的err。block.c: In function ‘main’:block.c:20:5: error: a label can only be part of a statement and a declaration is not a statement char buf[20]; ^block.c:21:5: error: expect

2020-06-19 17:00:24 340

原创 VMware Workstation和Device / Credential Guard不兼容问题解决

具体报错:VMware Workstation和Device / Credential Guard不兼容。禁用Device / Credential Guard后,可以运行VMware Workstation。解决:在命令行窗口中(需要管理员权限)该命令,重启计算机即可。bcdedit /set hypervisorlaunchtype off重新开启:bcdedit /set hypervisorlaunchtype auto...

2020-06-11 08:42:30 490

原创 Linux 多进程拷贝

仅供本人参考,没有原理介绍,谨慎阅读利用Linux系统提供的一系列函数实现多进程拷贝命令。实现的时候由于对进程控制太过生硬,一直出现莫名其妙的问题。最后参考了其他人是如何在fork后控制子进程的流程的,终于完成了。#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <fcntl.h>#include <sys/mman.h>#include <sy.

2020-05-31 21:57:26 393

原创 使用mmap匿名映射时出现的宏未定义

anonymouse_mmap.c: In function ‘main’:anonymouse_mmap.c:27:73: error: ‘MAP_ANO’ undeclared (first use in this function) char* mm = mmap(NULL, MAPSIZE, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANO, -1, 0);

2020-05-31 16:25:15 1541

原创 win 10 VS code Linux远程开发遇见的BUG

错误[18:03:16.473] Log Level: 2[18:03:16.480] [email protected][18:03:16.480] win32 x64[18:03:16.483] SSH Resolver called for "ssh-remote+9.134.115.130", attempt 1[18:03:16.484] SSH Resolver called for host: 9.134.115.130[18:03:16.484] Setting up SSH

2020-05-24 19:26:38 657 1

原创 对于C++编译器命名粉碎规则(name mangling)机制的实验

编译器版本测试案例#include <iostream>#include <string>using std::string;using std::cout;using std::endl;void print(int a) //_Z5printi{}double print(double,double,int,int) //_Z5printddii{ return 0;}int print(int , int ,double,

2020-05-19 22:17:44 445

原创 2020数字中国创新大赛虎符网络安全赛RE——game WP

阅读字节码后,首先定义了三个列表,arr0,arr1,arr2。主函数逻辑大致如下(伪代码形式给出):获取输入,然后依次调用4个check函数对输入进行check,如果其中任何一个不通过,返回失败。分别查阅4个check函数。4个函数翻译过后,整理出其关键运算处(用伪代码形式),推测出其作用。check0:字符ASCII值必须在32~127即可打印字符check1:长度校验,可以爆破得f...

2020-04-21 09:23:46 731

原创 Androidkiller回编译遇见的问题

问题如下当前 Apktool 使用版本:apktool_2.3.4.jar正在编译 APK,请稍等...>I: Using Apktool 2.3.4>I: Smaling smali folder into classes.dex...>I: Building resources...>W: fakeLogOpen(/dev/log_crash) failed...

2020-04-11 20:16:48 2280 1

原创 LeetCode之二分查找

852. 山脉数组的峰顶索引思路:一开始理解错误了…仔细看了下题目发现很简单嘛。可以直接扫描,也可以用效率更高的二分查找.扫描:class Solution {public: int peakIndexInMountainArray(vector<int>& A) { int res = 1; while (A[res - ...

2020-04-07 23:22:05 148

原创 真解函数调用约定

函数调用约定是什么函数调用约定,是指当一个函数被调用时,函数的参数会被传递给被调用的函数和返回值会被返回给调用函数。函数的调用约定就是描述参数是怎么传递和由谁平衡堆栈的,当然还有返回值。 —《百度百科》函数调用约定,从字面上来看,这是一个协议,一个应该被遵循的规范,那么谁来遵循呢?编译器。所谓函数调用约定指的就是当一个函数被调用时的乙烯类活动,包括参数入栈顺序,控制权的转交等。函数调...

2020-04-04 22:25:55 188

原创 LeetCode刷题之分而治之

面试题25. 合并两个排序的链表思路:最令我困惑的是,几乎所有人都采取了减而治之的策略,最优解也是如此,但这题却分类在分而治之…本题采用减而治之的策略,逐步蚕食问题的规模,最终可以得到问题的答案。不想解释了,简单题(对现在的我来说)。迭代:class Solution {public: ListNode* mergeTwoLists(ListNode* l1, ListNo...

2020-04-04 18:56:34 138

原创 LeetCode刷题之树

94. 二叉树的中序遍历思路:想到了常规递归算法,但是官方解使用提供了三种解法。第一中是最容易理解的,递归;第二中,栈和迭代完成遍历并返回数据;第三中,用了一种特殊的树来完成,这个方法我觉得就没必要学了。递归解法:typedef struct TreeNode { int val; struct TreeNode* left; struct TreeNode* ...

2020-04-01 19:51:12 209

原创 数据结构之树(tree)的实现及其基本操作

树的定义树状图是一种数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。typedef struct BTree //二叉树{ int val; struct BTree* rigth; struct BTree* left;}BTree, *BTreePtr;树的创建与销毁...

2020-03-30 17:19:59 1640

原创 易霖博比赛Re部分WP

re1先看运行下程序。发现输入提示,那用IDA打开搜索关键字符串,利用交叉引用定位函数。函数对用户输入前面几个字符进行判断,符合就是flag,直接提取出判断条件中的数据即可,那就是flag.flag{Sing_fDfkl_CTF}angr2_1ELF文件,先用IDA打开看下,如下:main函数以及把程序逻辑写的很清楚了,运行时大致流程是:初始化passwd,读取用户输入,...

2020-03-27 16:40:09 353 1

原创 LeetCode刷题之字符串

面试题58 - II. 左旋转字符串字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = “abcdefg”, k = 2 输出: “cdefgab” 示例 2:输入: s = “lrloseumgh”, k = 6...

2020-03-25 19:11:02 350

原创 KMP模式匹配算法

**注意:**本文金仅供笔者复习使用,不负责讲解。盯着KMP算法看了四个小时左右,终于彻底明白何为KMP算法了。所谓KMP算法有个大名鼎鼎的特点,那便是通过消除主串下标的回溯,极大的避免了不必要的重复比较,从而大大提高算法的时间效率。朴素匹配模式算法说到KMP,我们不得不说提朴实模式匹配算法,只要这种对比才能显现KMP算法的优越性。朴素匹配模式算法,就是所谓暴力枚举,对所以的可能性都进行...

2020-03-25 15:56:21 364

原创 BJDCTF2nd Reverser部分wp

guessgame签到题,拖进IDA搜索字符串就能得到flag。8086一道很简单的阅读16位汇编的程序2个函数,一个入口函数,一个解密函数。程序大致所说的是数据段定义的数据与31进行异或运算,结果就是flag。但解密函数的执行流程被稍微更改了一下,变为了无限调用自身也就是一直jmp自身,nop掉jmp语句就行了。...

2020-03-23 11:26:32 198

原创 LeetCode刷题之栈

面试题 03.04. 化栈为队实现一个MyQueue类,该类用两个栈来实现一个队列。..示例:.MyQueue queue = new MyQueue();.queue.push(1); queue.push(2); queue.peek(); // 返回 1 queue.pop(); //返回 1 queue.empty(); // 返回 false.说明:.你...

2020-03-17 18:53:58 169

原创 高校战“疫”网络安全分享赛Re:天津垓WP

复现题我下载的时候这个题缺了个dll,补上后运行下程序,观察。需要输入授权字符串。拖入IDA查看,查看字符串,发现有限制调试工具的代码,解除。找到第一个输入点。需要输入符号位运算的合法输入,写个脚本破解,如下:str = [0x52, 0x69, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x48, 0x6f, 0x70, 0x70, 0x65, 0x72, ...

2020-03-16 23:18:20 394 1

原创 LeetCode刷题之队列

641. 设计循环双端队列设计实现双端队列。你的实现需要支持以下操作:MyCircularDeque(k):构造函数,双端队列的大小为k。 insertFront():将一个元素添加到双端队列头部。如果操作成功返回 true。 insertLast():将一个元素添加到双端队列尾部。如果操作成功返回 true。deleteFront():从双端队列头部删除一个元素。 如果操作成功返回 ...

2020-03-16 19:07:30 287

原创 Buuoj-Re :helloworld

下载附件一看,是apk。使用AndroidKill工具进分析,搜索关键字符flag,获得flag。flag{7631a988259a00816deda84afb29430a}娱乐题,没什么收获。今天先睡了

2020-03-15 23:04:36 353

原创 双端队列思想解析

我们先来看看定义是什么。deque (全名double-ended queue)即双端队列,是一种具有队列和栈的性质的数据结构。双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。能够看得懂吗?反正我是不能,但这确实是用很精炼的语言描述了双端队列的性质。这句话的内容蕴含这样的信息deque在具备队列的性质同时,deque的rear和front指针还具备栈的性质。这确实不太好...

2020-03-15 20:40:17 940

原创 数据结构之栈的实现

百度百科:栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。栈的抽象数据类型来源《大话数据结构》ADT Stack(...

2020-03-14 19:28:46 267

原创 数据结构之队列实现

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。基于数组的循环队列——C语言描述基于数组的队列,一般我们只会使用循环队列,而不使用非循环。这样做的目的主要是处于安全考虑,已经空间的开销。循环队列的使用使得安全性大幅提高,并降低了...

2020-03-14 14:08:07 151

原创 几道webCTF——命令绕过

第一题无回显类型这里的exec函数会把参数cmd的值当做命令执行,并且没有任何过滤和限制。对于这种无回显的题目,我们可以选择重定向符>来查看和获取信息。我们先使用cmd=ls>info然后查看info来获取当前路径下的文件信息,如下:发现flag.php,我们再次使用重定向符把其内容写入一个文件,再读取这个文件即可,即使用cmd=cat fl*>info,再次前往页面查...

2020-03-14 11:51:26 1187

原创 LeetCode刷题之链表

现在正在学习数据结构与算法,学的过程中,学完一部分内容后,感觉有点空洞,没有切身的感受这些数据结构和算法的用处,于是谋生了学完一个专题就随便跑到LeetCode刷对应学完的专题,以此来巩固和加深对所学知识的理解,构造合理的输入和输出。下面是一个萌新对做了一些链表相关的算法题目后,结合自身以及LeetCode上一些大佬的解总结一些东西,此过程会不断更新,错误之处望指出。...

2020-03-10 22:27:29 465

原创 高校战“疫”网络安全分享赛

2020疫情期间高校战“疫”网络安全分享赛,个人做出的部分WP。不足之处见谅。MISC简单MISC提示为简单隐写术。附件中一张jpg图片和一个名为flag.zip的加密压缩包,很明显是让我们利用jpg获得密码解压压缩包。我们猜测这个图片中可能存在.txt文件保存密码,16进制查看器中查看下验证猜想。在kali中利用binwalk分离出来,并查看得到莫尔斯码,解码得到密码,解码压缩...

2020-03-09 10:45:03 2769

空空如也

空空如也

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

TA关注的人

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