摘要: 一,介绍: 异常机制是一种专门用于处理错误和特殊情况的机制,可以在程序运行时中断当前的控制流,并跳转到一个可以处理该错误的代码块。这种机制使得程序能够优雅地应对各种错误,而不是像C语言那样依赖返回错误码或直接终止程序。 二,流程: 图像示例: 反正我是这么理解的。 这个过程中会改变运行的控制权,运行 阅读全文
posted @ 2025-03-21 15:16 漫宿骄盛 阅读(20) 评论(0) 推荐(0)
摘要: 偶遇C#逆向题,IDA拼尽全力无法战胜,只给我一团乱码。 这时可以使用dnSpy来反编译: https://github.com/dnSpy/dnSpy/releases/tag/v6.1.8 1.dnSpy使用方法: 将你要反编译的程序的整个文件夹拖到那里,似乎只有.dll那里才能看到源码, 例题 阅读全文
posted @ 2025-03-21 11:06 漫宿骄盛 阅读(26) 评论(0) 推荐(0)
摘要: 一.介绍: 一种技术使得静态的代码被加密,阻碍静态分析,而一旦运行则会变为正常的代码。 这不就是壳吗? 不过在CTF中,一般只对局部加密,而且一般伴随着SMC出现的还有VirtualProtectVirtualProtect 是 Windows 操作系统中的一个 API 函数,它允许应用程序改变一个 阅读全文
posted @ 2025-03-21 11:05 漫宿骄盛 阅读(39) 评论(0) 推荐(0)
摘要: 1.快捷键 参考资料:https://www.cnblogs.com/lsgxeva/p/18629167 ida动调快捷键 作用 F7 单步步进 F8 单步步过 F9 继续运行程序 F4 运行到光标所在行 Ctrl + F7 直到该函数返回时才停止 Ctrl + F2 终止一个正在运行的进程 F2 阅读全文
posted @ 2025-03-21 11:01 漫宿骄盛 阅读(149) 评论(0) 推荐(0)
摘要: AST抽象语法树及如何转JS代码: 资料来源: https://www.cnblogs.com/goloving/p/14078228.html 抽象语法树(Abstract Syntax Tree)也称为AST语法树,指的是源代码语法所对应的树状结构。也就是说,对于一种具体编程语言下的源代码,通过 阅读全文
posted @ 2025-03-21 10:58 漫宿骄盛 阅读(108) 评论(0) 推荐(0)
摘要: 资料来源: https://www.cnblogs.com/goloving/p/14023881.html 一:编译目的 代码编译的目的是将源代码转换成机器能看懂的东西,从而运行代码。 机器能看懂的东西在不同环境下是不一样的。 这个机器能看懂的东西称为目标代码。 如果源代码在操作系统上运行:目标代 阅读全文
posted @ 2025-03-21 10:57 漫宿骄盛 阅读(47) 评论(0) 推荐(0)
摘要: 广度优先搜索(BFS)走迷宫: 广度优先搜索(BFS)是一种经典的图遍历算法,在解决路径查找、迷宫问题、拓扑排序等问题 前置知识:队列: 队列与栈类似,但是先进先出,而不是栈的先进后出。 原理: 相当于爆破,将所有的位置都走一遍 通用迷宫代码实现: #include <iostream> #incl 阅读全文
posted @ 2025-03-21 10:53 漫宿骄盛 阅读(96) 评论(0) 推荐(0)
摘要: TEA算法使用64位的明文分组和128位的密钥,它使用Feistel分组加密框架,需要进行 64 轮迭代,尽管作者认为 32 轮已经足够了。该算法使用了一个神秘常数δ作为倍数,它来源于黄金比率,以保证每一轮加密都不相同。但δ的精确值似乎并不重要,这里 TEA 把它定义为 δ=「(√5 - 1)231 阅读全文
posted @ 2025-03-21 10:49 漫宿骄盛 阅读(39) 评论(0) 推荐(0)
摘要: RC4算法: RC4(来自Rivest Cipher 4的缩写)是一种流加密算法,密钥长度可变。它加解密使用相同的密钥 基本原理: 生成一个密钥流,然后与密文进行异或。 大致过程: 生成密钥流: 先利用Key生成S盒——The key-scheduling algorithm (KSA) 再利用S盒 阅读全文
posted @ 2025-03-21 10:43 漫宿骄盛 阅读(103) 评论(0) 推荐(0)
摘要: 这个后面应该会增加,目前只记录遇到的 1.改特征的UPX 先看看正常的UPX: 会发现里面有UPX0,UPX1等特别的字符,将其修改,就不能直接用UPX脱壳了 我把他们都改成6666 自动脱壳就会报错: 拖进die看看 可以看到他不仅能识别到是UPX壳,还能识别出来可能修改的地方 将其修改回来: 就 阅读全文
posted @ 2025-03-21 10:42 漫宿骄盛 阅读(521) 评论(0) 推荐(0)
摘要: 加壳: 先写一个简单的代码: 生成text.exe文件,然后把这个文件放到与upx同一个文件夹里: 输入指令./upx text.exe 即可加壳 使用IDA打开,可以明显发现被upx加壳了,其大小也由原来的55kb压缩到42KB: 去壳: 工具去壳: 使用指令./upx -d text.exe即可 阅读全文
posted @ 2025-03-21 10:37 漫宿骄盛 阅读(465) 评论(0) 推荐(0)
摘要: 1.字节序: 字节序指数据在内存中储存的方式,决定了数据在内存中的排序位置 2.大端序与小端序 大端序: 定义:高位字节存在低地址,低位字节存在高地址。 示例:0x12345678 在内存中的存储顺序为:0x12(低地址)→ 0x34 → 0x56 → 0x78(高地址 特点:符合人类从左到右的阅读 阅读全文
posted @ 2025-03-21 10:24 漫宿骄盛 阅读(46) 评论(0) 推荐(0)
摘要: 介绍: PyC是Python字节码的缩写,它是Python解释器执行Python代码的核心。当Python代码被运行时,它会首先被解释器转换为PyC字节码,然后由CPython解释器执行。 反编译: pycdc: 优点:准确性高 缺点:格式不太好,使用不方便 使用方法:在命令栏里输入pycdc 文件 阅读全文
posted @ 2025-03-21 10:23 漫宿骄盛 阅读(63) 评论(0) 推荐(0)
摘要: 参考资料: https://mp.weixin.qq.com/s?__biz=Mzg4NzcxOTI0OQ==&mid=2247484677&idx=1&sn=33b57614d01cbbb4d67900e31cef8fe7&chksm=ce884f8e2c52125e82ba33ecbec3c51 阅读全文
posted @ 2025-03-21 10:21 漫宿骄盛 阅读(95) 评论(0) 推荐(0)
摘要: 参考资料: https://blog.csdn.net/boildoctor/article/details/121181152 https://www.52pojie.cn/thread-1451831-1-1.html 1.介绍 堆栈平衡指在函数调用过程中,通过调整堆栈指针(ESP)或基址指针( 阅读全文
posted @ 2025-03-21 10:19 漫宿骄盛 阅读(59) 评论(0) 推荐(0)
摘要: 一.介绍 1.当代码执行到某行时,获取寄存器值和内存里的值,进行调试分析,例如hook明文包. 2.当代码执行到某行时,插入想执行的代码.例如迅雷拦截发包函数. 3.当代码执行到某行时,修改寄存器,达到某些篡改目的. 拿FishingKit这道题举例就是本来运行流程是: a >b 而使用了Hook就 阅读全文
posted @ 2025-03-21 10:18 漫宿骄盛 阅读(37) 评论(0) 推荐(0)
摘要: Int(name, ctx=None),创建一个整数变量,name是名字 Ints (names, ctx=None),创建多个整数变量,names是空格分隔名字 IntVal (val, ctx=None),创建一个整数常量,有初始值,没名字。 对于实数类型的API与整数类型一致,向量(BitVe 阅读全文
posted @ 2025-03-21 10:14 漫宿骄盛 阅读(124) 评论(0) 推荐(0)
摘要: Pylnstaller原理及解包: 原理: PyInstaller是一种流行的工具,它允许开发人员将Python脚本打包成EXE文件,从而可以在没有Python解释器的情况下运行。 PyInstaller 读取你编写的 Python 脚本。它分析你的代码,找到脚本执行所需的其他模块和库。然后搜集所有 阅读全文
posted @ 2025-03-21 10:03 漫宿骄盛 阅读(58) 评论(0) 推荐(0)
摘要: random模块伪随机数: 所谓伪随机数指当给random设置种子后,里面的生成的随机数序列是固定的,可以被预测的。 不同系统和语言给定相同的种子,random内容不会相同 例题:[SWPUCTF 2021 新生赛]fakerandom: import random flag = 'xxxxxxxx 阅读全文
posted @ 2025-03-21 10:01 漫宿骄盛 阅读(39) 评论(0) 推荐(0)