- 博客(80)
- 收藏
- 关注
原创 数据库与大数据
/向表usr1中插入来自usr表的age大于10的数据并覆盖student表中原有数据。B、在索引方面,传统的关系数据库可以针对多个列构建复杂的索引,大幅度提升数据查询性能,而Hive不像传统的关系型数据库那样有键的概念,它只能提供有限的索引功能。在每个超步中,Worker会对自己所管辖的分区中的每个顶点进行遍历,并调用顶点上的Compute()函数,在调用时,会把以下哪些参数传递进去?C、在分区方面,传统的数据库提供分区功能来改善大型表以及具有各种访问模式的表的可伸缩性、可管理性,以及提高数据库效率;
2024-12-03 15:40:38
322
原创 头歌作业 数据库与大数据管理 期末复习资料
/向表usr1中插入来自usr表的age大于10的数据并覆盖student表中原有数据。B、在索引方面,传统的关系数据库可以针对多个列构建复杂的索引,大幅度提升数据查询性能,而Hive不像传统的关系型数据库那样有键的概念,它只能提供有限的索引功能。在每个超步中,Worker会对自己所管辖的分区中的每个顶点进行遍历,并调用顶点上的Compute()函数,在调用时,会把以下哪些参数传递进去?C、在分区方面,传统的数据库提供分区功能来改善大型表以及具有各种访问模式的表的可伸缩性、可管理性,以及提高数据库效率;
2024-12-03 15:39:44
743
原创 [LitCTF 2023]ez_XOR
文件无壳 拖入ida 查看主函数伪c代码继续跟进xor函数 函数遍历输入的字符串 ,对每个字符执行异或操作,并将字符与 异或所以题目的加密过程是将字符串E`}J]OrQF[V8zV:hzpV}fVF[t与3异或写出脚本得到flagLitCTF{XOR_1s_3asy_to_OR}
2024-11-06 20:44:12
370
原创 [SWPUCTF 2021 新生赛]fakebase
这段代码是一个简单的加密算法,通过将给定的字符串转换为二进制形式,然后将二进制数转换为一个整数,再将这个整数不断地除以31取余数,并根据余数映射到。将每个字符转换为8位的二进制字符串,并拼接在一起,得到一个大整数。中的字符来实现加密。最后,输出加密后的字符串。中的字符,直到商为0,得到加密后的字符串。不断除以31,取余数,将余数映射到。python逆向 先看源代码。:这是要加密的原始字符串。:这是用于加密的字符集。最后打印加密后的字符串。
2024-11-06 20:20:58
283
原创 2024年网鼎杯青龙组逆向2题wp
定义了一个字符串 v22,赋值为 "XorrLord"。在 v11 数组的索引位置 2 到 5 分别赋值为 22, 64, 120, 12。通过循环,计算 dest 数组中索引从 8 到 15 的元素与 v22 字符串对应位置的元素的异或结果,保存到数组 v13 中
2024-10-31 21:45:20
1248
1
原创 [网鼎杯 2022 青龙组]fakeshell
拖入010查看壳的情况,发现upx被改成了fuk,改回upx,然后拖入到upx中进行脱壳头。代码的逻辑是将dword_14001D000的字符加10异或0x50再跟0x66异或。将脱壳好的文件拖入ida中 可以发现可以正常使用了 F5查看主函数。将文件拖入ida 又又又爆红了 但是用upx脱壳却不能脱壳。指向的字符数组进行一些按位异或的操作。函数中使用了一个循环,将数值。函数中使用了一个循环,将数值。函数调用后,函数会调用。指向的内存位置,并递增。函数返回值,如果不等于。upx -d 文件地址。
2024-10-19 11:46:06
423
原创 [网鼎杯 2020 青龙组]jocker
的前 24 个元素,如果元素的索引是奇数,则将该元素的值减去索引值;"%tp&:"这个字符串是最后一段,flag的最后一个字符是'}'根据题目描述的异或操作,可能是这段字符使用同一个值异或,所以只要由。这个函数的作用是比较输入的字符数组和预设的整型数组,如果所有对应位置的元素相等,则输出一条字符串;否则输出另一条字符串。"堆栈不平衡"通常指的是在函数执行期间对栈的操作不平衡,比如函数在返回时未正确处理栈上的数据,导致栈指针不正确。这个函数只与flag的前19位进行了加密,解密得到flag的前半段。
2024-10-16 21:49:38
712
原创 NSSCTF [HNCTF 2022 WEEK2]e@sy_flower
思路就是输入的flag先互换位置,再与0x30异或。将main函数按p定义 F5查看伪c代码。将文件拖入ida 就看到很显眼的花指令。对着jmp指令nop掉。
2024-09-28 19:44:45
506
原创 NSSCTF [HNCTF 2022 Week1]超级签到
看到遍历 Str2,如果字符为 'o',则替换为 '0'解题的思路就是把字符串中的o改成0。
2024-09-28 16:55:05
341
原创 NSSCTF [SWPUCTF 2021 新生赛]fakerandom
【代码】NSSCTF [SWPUCTF 2021 新生赛]fakerandom。
2024-09-28 16:42:13
273
原创 NSSCTF [GFCTF 2021]wordy(花指令脚本)
可以被解释为一个短跳转指令,跳转到当前指令的前面1字节处,实际上是一个无条件的跳转到当前指令的下一条指令,因为。90也就是nop的机械码,以达到去除花指令的目的。进入到汇编窗口 看到了很明显的花指令。范围内的字节,检查是否有连续的。字节序列,并将其替换为。文件无壳 拖入ida。开始写脚本去除花指令。在x86汇编语言中,指令的机器码表示,而。
2024-09-28 15:50:44
769
原创 NSSCTF [HDCTF 2023]easy_re
继续跟进function函数 发现这就是一个base64解码。将文件拖入IDA shift+F12查看可疑字符串。文件有壳 先用upx脱壳 upx -d 文件地址。对字符串进行base64解码。
2024-09-28 14:52:51
333
原创 NSSCTF [HUBUCTF 2022 新生赛]simple_RE(变种base64编码)
这段代码是一个简单的 C 语言程序,主要功能是接受用户输入的字符串作为“flag”,然后通过对输入的字符串进行一些处理和比较来验证是否输入了正确的“flag”。这段代码是一个 Base64 编码函数,用于将输入的字符串进行 Base64 编码处理。shift+F12查看可疑字符串 发现两串字符串 一看这两个等于号就猜测是base64编码。简而言之 这是一个简单的变种base64编码。继续跟进sub_401770函数。文件无壳 拖入IDA中。
2024-09-27 16:32:05
673
原创 IDA动态调试
通用寄存器:共有rax、rbx、rcx、rdx、rsi、rdi、rbp、rsp、r8、r9、r10、r11、r12、r13、r14、r15这16个寄存器,CPU对它们的用途没有做特殊规定,可以自定义其用途(其中rsp、rbp这两个寄存器有特殊用途)。其中,rsp栈顶寄存器以及rbp栈基寄存器都和函数调用栈相关,其中rsp寄存器一般用来存放函数调用栈的栈顶在内存中的地址,rbp寄存器通常用来存放函数的栈帧在内存中的起始地址。Synchronize with就可以查看与寄存器同步的信息。
2024-09-11 20:58:38
684
1
原创 IDA动态调试
通用寄存器:共有rax、rbx、rcx、rdx、rsi、rdi、rbp、rsp、r8、r9、r10、r11、r12、r13、r14、r15这16个寄存器,CPU对它们的用途没有做特殊规定,可以自定义其用途(其中rsp、rbp这两个寄存器有特殊用途)。其中,rsp栈顶寄存器以及rbp栈基寄存器都和函数调用栈相关,其中rsp寄存器一般用来存放函数调用栈的栈顶在内存中的地址,rbp寄存器通常用来存放函数的栈帧在内存中的起始地址。点击带有绿色三角符号的Start process即可开始调试程序。
2024-09-11 20:48:01
2426
4
原创 BUUCTF [NPUCTF2020]
shift+F12查找可疑字符串 发现一串很像base64编码表的字符串。输入数据后直接base64解码然后比较,只是把base64的56改为{}上脚本 这里借鉴这位师傅的代码。双击进去 F5查看伪c代码。跟进RxEncode函数。文件无壳 拖入ida。
2024-09-10 20:51:06
350
原创 BUUCTF [GKCTF 2021]QQQQT(QT程序解包)
Enigma Virtual Box 是一款用于Windows平台上的软件虚拟化工具,主要用于将应用程序及其所有相关文件(如动态链接库DLL、资源文件、配置文件等)封装到单一可执行文件中,这样无需实际安装或解压,用户可以直接运行这个单个EXE文件来启动应用程序。通过打包Qt程序,可以将程序及其依赖项打包到一个文件中,方便在其他Linux系统上部署和运行。用户可以通过简单地执行该文件来运行程序,而无需进行额外的设置或配置。它是完全面向对象的,很容易扩展,并且允许真正的组件编程。双击进去 F5查看源代码。
2024-09-10 20:24:14
1215
原创 BUUCTF [WMCTF2020]easy_re
perl是解释语言,perlapp只是把你的perl程序压缩后放在资源里面,执行的时候会解压的。能力而闻名,特别是在处理报告生成、文件转换、系统管理任务等方面。shift+F12查看可疑字符串 并没有发现任何有用的东西。Perl 以其强大的。根据文件名perl 去查找相关的资料。Perl 是一种高级、解释型、动态。等语言的特性,并加入了大量的创新。把文件拖入x64dbg。文件无壳 拖入ida。
2024-09-10 20:00:23
251
原创 BUUCTF [2019红帽杯]childRE
是一个在 Windows 编程中使用的函数,主要用于将 C++ 编译器生成的装饰名(mangled name)转换回可读的原始函数名。在 C++ 中,由于函数重载、模板、类成员函数等特性的存在,编译器会将函数名进行“装饰”或“混淆”(mangling),以在链接时区分不同的函数实体。这种装饰名通常包含函数的返回类型、参数类型、命名空间、类名等信息,这使得它对于人类来说是不可读的。中的每个字符,它首先计算该字符对23取模的结果,并使用这个结果作为索引从。运算符的结果会向下取整),并使用这个结果作为索引从。
2024-09-06 20:31:23
463
原创 BUUCTF equation(jsfuck混淆)
JS代码混淆技术是一种通过对JavaScript代码进行转换和加密,以使其难以理解和逆向工程的技术。这种技术主要通过增加代码的复杂性和混淆度来提高代码的安全性和保护知识产权。JS代码混淆是将JavaScript代码转换成难以阅读和理解的形式的过程。通过混淆,代码的逻辑和结构被隐藏或复杂化,从而增加了攻击者分析、理解和篡改代码的难度。)来编写复杂的JavaScript代码。JSFuck是一种使用特定字符集来编写和执行JavaScript代码的技术,它可以用于代码混淆和趣味编程等场景。那什么是js混淆方法呢?
2024-09-05 17:36:27
636
原创 x64dbg使用技巧及upx手动脱壳
专门负责对程序体积进行压缩,或者是保护一个程序不被非法修改、逆向分析的一类软件。壳通过附加自身代码在保护对象(原始程序)上,在操作系统对原始程序代码进行执行只求按获得程序控制权,进而对原始程序进行解压或解密等还原操作,完成操作后控制权将还给原始程序,程序的原始代码才开始被执行。壳主要有压缩壳和加密壳两种:加壳软件在运行时运行外壳代码,对程序进行解压操作或解密操作,所以对于比较简单的壳,
2024-09-04 20:21:56
3955
原创 BUUCTF [CFI-CTF 2018]IntroToPE
解码 得到flag{.NetC#_1s_@w3s0m3}查看汇编语言 一眼看到了base64编码。把文件拖入ida 这个样子非常奇怪。
2024-09-03 20:12:41
266
原创 BUUCTF [FlareOn5]Ultimate Minesweeper(踩雷题)
继续往上翻 看到failurePopup函数 只要踩中雷 这个函数会让你直接退出 所以我们直接删掉这个函数再运行。找到后 flag直接弹出 不知道为什么我这里是乱码 试了几次都是乱码。找到主函数 发现Getkey函数 这个应该是加密函数。删掉之后 shift+Ctrl+s保存 再次运行。运行这个踩雷游戏 900个格子有897个雷。发现踩雷后不会直接退出来了 一个一个试。这是一个.net文件 拖入dnSpy。
2024-09-02 21:44:08
947
原创 BUUCTF [GXYCTF2019]simple CPP
与一组字符串异或后,每8个字节一赋值给4个变量v16,v15,v14,v13。将中间一节乱码替换为e!P0or_a即得到flag。下一步寻找qword_140006048内容。双击进去 F5查看伪c代码 代码非常长。利用Z3求解器求解 代码是这位师傅的。shift+F12查看可疑字符串。Block的输入可能为flag。文件无壳 将文件拖入ida中。
2024-09-02 21:14:12
357
1
原创 BUUCTF [MRCTF2020]PixelShooter(游戏逻辑)
全称为 Dynamic Link Library(动态链接库),是一种包含可由多个程序同时使用的代码和数据的库文件。DLL 文件允许程序共享执行特殊任务所必需的代码和其他资源,这样可以节省内存,并减少复杂性。游戏的重要逻辑一般位于assets\bin\Data\Managed\Assembly-CSharp.dll。把dll文件拖入dnSpy 经过我不懈的寻找 终于找到flag了。先将apk文件改后缀为zip。
2024-08-29 17:19:59
282
原创 BUUCTF [GUET-CTF2019]number_game
指向的字符串中连续读取前10个字符(尽管只显式处理了前9个字符的读取和大部分字符的存储,但第10个字符的读取也隐含在。函数的目的是基于这些参数构建一个二叉树,并返回一个指向该结构头部的指针。对于前9个字符,它分别将它们存储在全局或静态的字节变量(如。等)表明它们可能是程序中定义的全局或静态字节变量,用于存储特定的数据。,并且要求每行每列不能出现相同的值,可以看成是一个简易版的数独。的值(这次没有转换)存储在另一个全局或静态字节变量。),函数首先将其强制转换为无符号的8位整数(打开文件 无壳 拖入ida。
2024-08-29 16:26:30
336
原创 BUUCTF [FlareOn1]Bob Doge(C#)
下载后发现文件是一个安装程序按要求先把程序安装好 打开后发现decode其实我的第一想法是把exe文件投入ida 但是拖进去是这个样子的我查了相关资料才想明白为什么是这样的。
2024-08-29 15:52:24
416
原创 BUUCTF [FlareOn5]Minesweeper Championship Registration
把文件拖入jadx 一眼看到flag。随便输点数据进去 发现会报错。
2024-08-29 15:19:26
252
原创 BUUCTF [GWCTF 2019]re3
所谓SMC(Self Modifying Code)技术,就是一种将可执行文件中的代码或数据进行加密,防止别人使用逆向工程工具对程序进行静态分析的方法,只有程序运行时才对代码和数据进行解 密,从而正常运行程序和访问数据。继续跟进sub_402219函数 看到有很多数据将sub_402219按D转换为数据用idc脚本还原数据,用shif+f2调出脚本编辑器,编辑idc脚本run执行完成后,右键要修改的所有数据->Analyze selected area->force再在函数开头按P,变为函数。
2024-08-29 11:16:06
987
原创 X64dbg手动脱壳
专门负责对程序体积进行压缩,或者是保护一个程序不被非法修改、逆向分析的一类软件。壳通过附加自身代码在保护对象(原始程序)上,在操作系统对原始程序代码进行执行只求按获得程序控制权,进而对原始程序进行解压或解密等还原操作,完成操作后控制权将还给原始程序,程序的元时代吗才开始被执行。
2024-08-28 17:22:55
2638
原创 BUUCTF [网鼎杯 2020 青龙组]singal(angr)
通常用于文件或套接字,而不是直接用于字符串。: 跳过当前指令(即不执行任何操作,只增加索引)。(下一个数组元素,作为操作数)与。执行减一和加一操作,并更新索引。函数(这里可能是个错误,因为。中,并跳过下一个数组元素。中,并跳过下一个数组元素。中,并跳过下一个数组元素。中,并跳过下一个数组元素。,则打印错误消息并退出程序。继续跟进vm_operad。的低字节,结果存储在。: 执行条件检查,如果。: 执行加法操作,将。: 执行减法操作,从。: 执行异或操作,将。: 执行乘法操作,将。索引处,并更新索引。
2024-08-28 11:25:49
367
原创 BUUCTF [BJDCTF2020]BJD hamburger competition(unity3D和.net程序)
是 C# 中的一个字符串格式化方法,用于将数字(尤其是整数或某些枚举类型)转换为其十六进制表示的字符串形式,并确保结果字符串至少包含两位数字。X表示要将数字转换为十六进制(大写字母)。从字符串的开头(索引0开始)提取长度为20的子字符串flag取字符串前20位字符 并且还需要转为大写。
2024-08-28 10:13:43
730
原创 NSSCTF [NSSCTF 2022 Spring Recruit]easy C
首先,我们注意到异或操作是可逆的,即如果你对一个值进行两次相同的异或操作,你会回到原始值。因此,为了逆变换,我们可以对。
2024-08-27 16:36:55
334
原创 BUUCTF [WUSTCTF2020]level4(二叉树遍历算法)
Traversal type 1:2f0t02T{hcsiI_SwA__r7Ee} 中序。Traversal type 2:20f0Th{2tsIS_icArE}e7__w 后序。然后根据I{_}Af2700ih_secTS2Et_wr可以猜测是这个字符串是。函数打印“Traversal!”,表明接下来将进行遍历操作。前序遍历,中序遍历和后序遍历的结果。进入主函数 F5查看伪c代码。函数,传入了一个字符串和。本题考察二叉树遍历算法。文件无壳 拖入ida。
2024-08-26 20:23:02
306
原创 BUUCTF [Zer0pts2020]easy strcmp
部分是一个占位符,表示实际的flag字符串在这里被隐藏或替换了。:指定函数返回类型为64位整数。在这个例子中,函数总是返回。(即0,但明确指定为64位长整型),表示程序正常退出。:这是一个调用约定,它指定了函数参数如何传递给函数。接下来,函数遍历这些块,并对每个块执行减法操作。(即64位或8字节)可以存储8个字符。指向的内存中的每个64位块减去。,这个变量是基于字符串长度(),则检查第二个参数()是否等于特定的字符串。相当于除以8,因为每个。文件无壳 拖入ida。数组中相应位置的值。
2024-08-26 19:43:14
324
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人