CTF学习笔记
文章平均质量分 84
Sciurdae
一只初入逆向的菜鸟,日常记录学习.
展开
-
Windows内核理论基础学习
近俩天的学习-Windows内核基础的学习笔记。算是一个概述,毕竟每一个小点单拉出来都可以讲好久。学了这俩天,对内核的理解算是清晰了那么一点点了,持续学习ing…欢迎师傅一起交流讨论私信andwx都欢迎。参考文献:《加密与解密》Windows内核基础《Windows内核原理与实现》系统总述《深入理解Windows操作系统》Chat Gpt…MSDN文档。一些零零散散的大佬的blog。原创 2024-01-04 19:10:43 · 1504 阅读 · 1 评论 -
Windows反调试技术学习
元旦快乐!!!只是粗浅的两天的一点笔记和实践记录。加解密一书每一章应该都要来回啃上几遍才能理解,书中好多还是不懂的,只能先学能理解的,后面再继续深入了。下一个该学异常处理了,学完就把这一次笔记的关于异常的反调试补上。ε=(´ο`*))),元旦快乐!原创 2024-01-01 12:58:22 · 1496 阅读 · 0 评论 -
长城杯2021政企组-魔鬼凯撒的RC4茶室 WP
前面看起来像是RC4加密,结合题目一开始也以为是RC4,实际上并没有发现key。尝试之后,发现下面俩个加密实际都不重要。根据程序后面可以知道,flag片段里面的flag就是密文,拿密文和key异或可以得到前半段flag。有个小技巧,这里传入的参数是Str字符串,但是原本IDA自动识别出来的类型是。,所以直接看就是很多(BYTE *)类型转换,可以直接对a1按。输入1111122222为flag,动态调试。UPX壳,upx -d直接脱。这样就特别容易看了,其他题目同理。正确,也就得到了后半部分flag。原创 2023-12-29 14:47:43 · 861 阅读 · 1 评论 -
Blowfish加密算法学习
Blowfish是一种对称区块加密算法。该算法流程分为密钥扩展以及数据加密俩部分,每次分组长度为64位,密钥采用32-448位,经过扩展后生成多个子密钥数组。进行共16轮的迭代加密。原创 2023-12-28 12:58:05 · 1515 阅读 · 0 评论 -
利用FLRIT恢复符号表---笔记
获得一个要创建签名文件的静态库利用FLAIT为库创建一个模式文件使用sigmake处理生成的模式文件,生成一个签名文件将签名文件复制到sig中。原创 2023-12-25 19:22:12 · 1347 阅读 · 0 评论 -
强网杯2022GameMaster复现
这里又是对Program.memory进行了一个加密,用了ECB加密模式,填充方式是PaddingMode.Zeors,这是一个典型的AES加密。给了俩组密文,依次解密,第一组用z3求解。可以得到x,y,z。三个数据根据ParseKey可以得到长度为12的array4,已知array5,俩者异或就可以得到flag。大概这个exe就看完了,下面也不太清楚都做了什么,可以明白的是gamemessage是可以解密的。这里就是AchivePoint3了,进行了一个反序列化的操作,但是没有对文件进行处理。原创 2023-12-25 16:09:41 · 416 阅读 · 0 评论 -
[安洵杯 2019]Game复现
有俩处,v9那里其实就是减去了48;后面用我们的输入去填D0g3这个数独,最后跟sudoku比较。开了混淆,控制流平坦化,可以使用deflat.py进行去除。逆向,先将数独需要填入的拿出来,check1可以根据z3解。要去除的有多个函数,再进行多次重复去除后可以得到。代码不多,慢慢分析,前面是一些生成数独以及检查。直接看check部分,check没有做什么;做了一些置换,以及简单运算。原创 2023-12-21 20:25:22 · 517 阅读 · 0 评论 -
网鼎杯2022青龙组Re复现
IDA打开看到VirtualProtect函数。SMC自修改。这里对地址的值进行了复原,写个idapython进行复原(或者动态调试复原)之后对全部数据U了后,复原即可。可以得到第一处将密文和Buffer数组异或即可得到第一部分flag。第二处给了v3、后面有随机数,不太清楚干了什么,因为flag最后一位是 ‘}’ ,猜测一下用是用v3 和 rand 异或。原创 2023-12-21 16:53:13 · 546 阅读 · 0 评论 -
NSSCTF靶场练习[HUBUCTF 2022 新生赛]
签到题一个base64编码,自定义了码表、原创 2023-12-16 23:59:52 · 767 阅读 · 0 评论 -
NSSCTF-Crypto靶场练习---41-46WP
求 P-1 和 Q-1 的lcm 最小公倍数实际上就是我们要的 phi了。第二行是base64码表,有 %3D,%2F,%2B 是Unicode编码,可以换成。要用工具,或者在线网站https://sagecell.sagemath.org/注意的是 z3中用的是Int类型,所以要求的c1和c2也要是int类型,原先。没有考什么,N可以直接分解,得到p和q。这样得出来的c1是 mpz类型的,所以要用int转换。都是迷惑的东西,别看,注意关键的pow就好。c1和c2再根据z3就可以算出F1和F2了。原创 2023-12-15 00:03:13 · 1076 阅读 · 0 评论 -
ISCTF2023 Reverse方向 WP
那么根据简单的数学公式,我们可以知道phi 即 (p-1)(q-1) = (p+1)(q+1) - 2(p+q),以及n = p * q = (p+1)(q+1) - (p+q) - 1;但是其实现在也还有点疑惑,为什么TEA加密的时候的明文和key是相同的,解密的时候密文和key也可以相同,当时就是这里纠结不出来。这里拿 刚刚 TEA加密后的密文,先是异或,将得到的数据作为一个二维数组的索引,把当前位置的值设置为1,最后比较返回0。发现一小段花指令,去除后发现是一个TEA加密,但是目前不清楚是哪里的。原创 2023-12-14 09:17:14 · 1402 阅读 · 0 评论 -
关于.so文件以及.dll和.lib文件
上一篇笔记说到动态链接库和静态链接库,重点说了DLL的链接。,文件后缀为.so.so文件和.dll文件的区别dll的链接方式有俩种(隐式加载和显式加载)而so文件的链接是通过ld命令来进行的。例如:有一个源文件example.c-shared-fPIC然后,我们有一个使用这个共享库的程序main.c编译main.c这里的-ldl选项是为了链接libdl库,它包含动态链接相关的函数。最后,运行生成的可执行文件. / main。原创 2023-12-12 10:31:53 · 2470 阅读 · 0 评论 -
静态链接库和动态链接库(隐式载入显式载入)
关于代码复用,有些文件专门用于存储可以重复使用的代码块,例如功能实用的函数或者类,我们通常将它们称为库文件,简称“库”(Library)。将这种库文件进行打包编译后得到二进制文件就是链接库。链接库是一个不能独立运行的二进制文件,它必须经过其他程序调用,才可以载入内存中。根据链接方式的不同,可以分为静态链接库和动态链接库。原创 2023-12-11 21:51:58 · 1355 阅读 · 0 评论 -
VM虚拟机逆向---[羊城杯 2021]Babyvm 复现【详解】
无。原创 2023-11-07 14:48:24 · 824 阅读 · 3 评论 -
VM虚拟机逆向 --- [NCTF 2018]wcyvm 复现
第四题了,搞定,算是独立完成比较多的一题,虽然在还原汇编的时候还是很多问题。原创 2023-11-03 12:43:56 · 705 阅读 · 1 评论 -
CTF-Reverse---VM虚拟机逆向&[HGAME 2023 week4]vm题目复现【详解】
没有前言。终于搞定第二题了。费劲是真的费。题目在nssctf上有。原创 2023-11-02 14:25:44 · 1209 阅读 · 0 评论 -
CTF-Crypto学习记录-第四天 “ “ --- SHA1安全散列算法,实现原理。
MD5学习MD5加密算法SHA-1(Secure Hash Algorithm1,安全散列算法1)是一种密码散列函数。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。SHA-1的历史:2005年,密码分析人员发现了对SHA-1的有效攻击方法,这表明该算法可能不够安全,不能继续使用,自2010年以来,许多组织建议用SHA-2或SHA-3来替换SHA-1。原创 2023-10-27 17:01:22 · 1390 阅读 · 0 评论 -
GCC编译器 & gcc编译过程 ‘ ‘ ‘ ‘ --- 记一次查缺补漏 ‘ ‘
学习的过程遇到了.s后缀的文件,原来是gcc的编译过程,复习一下。又牵扯到了各种C编译器,诸如MSVC、MinGW、Clang+LLVM等,挖个坑先。还有关于动态链接和静态链接的知识,等等补。GCC编译器套装(GNU Compiler Collectin,缩写为GCC)是GNU计划制作的一种优化的编译器,支持各种编程语言、操作系统、计算机系统结构。该编译器是以GPL及LGPL许可证所发行的自由软件,也是GUN计划的关键部分,还是GNU工具链的主要组成部分之一。原创 2023-10-27 15:15:04 · 138 阅读 · 0 评论 -
记 : CTF2023羊城杯 - Reverse 方向 Blast 题目复现and学习记录
羊城杯题目复现:第一题 知识点 :DES算法 :链接:Ez加密器第二题 知识点 :动态调试 :链接:CSGO这一题的查缺补漏:虚假控制流的去除(还没学习);链接:MD5加密算法原理python 字典的使用刚学点。原创 2023-10-27 00:34:32 · 551 阅读 · 1 评论 -
Python字典-dict “ “ ---记一次查缺补漏“ “
python没有系统学过,走一步学一点吧,这次查缺补漏的点是dict;文献参考:菜鸟教程ChatGPT维基百科。原创 2023-10-27 00:32:37 · 203 阅读 · 0 评论 -
CTF-Crypto学习记录-第三天 MD5加密算法(信息摘要算法)“ “
MD5加密算法,也称信息摘要算法(Message-Digest Algorith 5),所谓的信息摘要就是将明文内容按一定的规则生成一段哈希(Hash)值 ,即得到这段明文内容的消息摘要。利用MD5可以基于任意长度的明文字符串生成128-bit的哈希值,结果唯一且不可逆。原创 2023-10-26 18:03:54 · 856 阅读 · 0 评论 -
CTF-Crypto 第二天-DES加密算法原理学习
数据加密标准(Data Encryption Standard,缩写DES)是一种对称加密算法,也是一种分组加密算法。对称加密指的是在加密和机密时使用同一个密钥的加密算法,加密算法可以被公开,发送和接收双方要事先得到同一个密钥。常见的对称加密算法有AES、ChaCha20、3DES、Salsa20、DES、Blowfish、IDEA、RC5、RC6、Camellia以及我国的SM1。分组加密指的是该算法将明文分成多个等长的模块(block),使用确定的算法和对称密钥对每组分别加密解密。原创 2023-10-25 16:16:36 · 591 阅读 · 0 评论 -
CTF-Crypto-第一天-常见编码and古典密码(入门学习笔记)(详)
学习笔记撒;总结一下;原创 2023-10-22 13:25:34 · 405 阅读 · 0 评论 -
Apktool工具的下载安装和简单使用;反编译and解包打包;
apktool"apktool" 是一个用于反编译和重新编译 Android APK 文件的开源工具,可以将APK文件反编译成可读的Smali代码或原始的XML布局文件。apktool需要java环境支持,请先安装好java环境,可以使用 java -version,java版本尽量在1.8以上;原创 2023-10-20 22:15:04 · 7035 阅读 · 1 评论 -
BUUCTF NewStarCTF 2023 Week2 Reverse方向wp
忘记说了,这道题是SMC,也就是动态自修改代码,主函数第七行的VirtualProtect就是授予内存写权限,再用一些加密对内存进行改写,因为会在程序运行的时候进行自解密,所以不会影响程序的正常运行;第二个for 就是,我们的输入作为v6的索引,将得到的值存入a1中,最后返回,a1和&unk_4020比较,也就是说unk_4020的值在v6中的索引,就是我们要的flag。逻辑很简单,逆向就是,用403020的值-5^0x11就好,点击4033D4就知道那里放到其实是我们的输入;成功就是flag的;原创 2023-10-20 21:32:50 · 1082 阅读 · 0 评论 -
python字节码详解,bytecode手动反编译。
字节码(Bytecode):通常指的是已经经过编译,但与特定机器代码无关,需要解释器转译后才能成为机器代码的中间代码。字节码通常不像源码一样可以让人阅读,而是编码后的数值常量、引用、指令(也称操作码,Operation Code)等构成的序列。拿 Python 说明,Python 解释器先翻译 Python 源代码( .py 文件)为 Python 字节码( .pyc 文件),然后再由 Python 虚拟机来执行 Python 字节码。原创 2023-10-19 22:31:06 · 1340 阅读 · 2 评论