
笔记
文章平均质量分 80
沐一 · 林
人若无言,方可潜心向学。
人若无名,方可潜心练剑!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
对 python 正则表达式字面字符串和模式字符串的一点思考
但是由于字面字符串的 "识别级别" 是比模式字符串高一级的正常级别,所以 r"\n" 在字面字符串中表示一个单斜杠 "\\" 和一个字符 "n",但在模式字符串中只表示一个换行符。比如匹配 Unicode 词语的字符 r"\w" == "\\w",也就是说在一个正常的特殊字符 "\n" 在模式字符中写成 r"\n" == "\\n",而在字面字符串中只写成 "\n"。r"\" 是错的,r"\\" == "\\\\",单个反斜杠只能写成 "\\",但是如果单个 \ 没有与分界符接触就没事,比如 r"\n"。原创 2022-09-27 14:26:13 · 714 阅读 · 0 评论 -
《windows 程序设计》读书笔记 三
调用 CreateWindow 函数:CreateWindow 函数的第一个参数称为 “窗口类名称”,而窗口类又与一个称为 “窗口过程” 的东西关联在一起。进行 Windows 程序设计时,其实就是在进行一种面向对象的编程,在 Windows 环境下接触最频繁的对象就是窗口(window)。装饰桌面最明显的窗口莫过于应用程序窗口,这些窗口包含一个显示有程序名称的标题栏、一个菜单栏。可能还带一个工具栏 (toolbar) 和一个滚动条 (scrollbar) 。另外一种类型的窗口是对话框,这种窗口可以不带标题原创 2022-09-20 23:53:39 · 1651 阅读 · 2 评论 -
x86指令编码简述(机器码)
reg 表示寄存器方式,在不包括立即数的双操作数指令的情况下,规定必须有一个操作数在寄存器中,该寄存器由 reg 字段指定,并与操作码字节中的 w 位相组合确定的寄存器。(除了操作码必须外,其它字段是可选的)(操作码字段的位 0 用于选择 8 位或 16 位寄存器:1 表示 16 位寄存器,0 表示 8 位寄存器,位 0 就是 w ,在 8 位的最后啊!(Mod 在橙色块,Reg 在上面绿色块,R/M 在紫色块,黄色块是总的加起来的 Mod R/M 字节值,蓝色块是要操作的 R/M 字段对应的源操作数 ).原创 2022-08-29 14:52:10 · 9009 阅读 · 0 评论 -
x64dbg 基本使用技巧
最近使用 DBG 多了起来,所以查了一些资料来学习并整理成自适应的笔记。本文摘抄自:x64dbg 使用技巧与实用插件合集官方网站: https://x64dbg.com/DBG 解压后根目录如下图,双击 x96dbg,出现三个弹窗,会生成 x96dbg.ini 文件,里面记录着 32 位和 64位 dbg 程序的路径。当你需要把整个程序文件夹移动到其他路径时,最好把这个 ini 删除,重新双击让它再生成。当你需要把它加到发送到菜单中的时候,也推荐添加 x96dbg,它会自动选择用 x32 还是 x64db原创 2022-06-22 21:34:44 · 21825 阅读 · 11 评论 -
解析 DES 加密算法(C语言):
目录解析 DES 加密算法(C语言):DES 简介:DES 算法整体流程:DES 解密:C 语言代码实现加密解密逻辑:内容修改自博客:DES加密算法解析与实现 - luogi - 博客园DES 全称为 Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法。DES 算法就是一个把 8 字节 64 位的明文输入块变为 64 位密文输出块的算法,它所使用的密钥也是 64 位(其实只使用到了 56 位,其余 8 位为奇偶校验位)算法特点:分组比较短、密钥太短、密码生命周期短、原创 2022-06-13 16:15:46 · 8645 阅读 · 5 评论 -
Base-N 算法加密解密实现:
目录Base-N 算法加密解密实现:Base64 加密解密:(C 语言、python)Base32 加密解密:(C 语言)Base-N 算法加密解密实现:Base64 加密解密:(C 语言、python)Base64 介绍:Base64 是一种基于 64 个可打印字符来表示二进制数据的表示方法。由于 2^6=64,所以每 6 个比特为一个单元,对应某个可打印字符。3 个字节有 24 个比特,对应于 4 个 Base64 单元,即 3 个字节可由 4 个可打印字符来表示。它可用原创 2022-05-26 11:46:06 · 2500 阅读 · 0 评论 -
对 IDA 结构体操作的一些理解
对 IDA 结构体操作的一些理解前言:刚学逆向时把 IDA pro 权威指南过了一遍,但读得并不是很细,满足日常使用还是没问题的,但是对于一些细节的操作或提高效率的方法倒是没能掌握。比如 IDA 对结构体和数组的操作,看过,但是不记得了,就算记得也不会用,或者根本不知道什么时候用,在哪用。虽然凭借着最基本的操作依旧能分析得出来,但是效率却大打折扣。有一天从 水番正文 的视频中得到启发,发现应用 IDA 结构体后能使代码可读性大大提高,便回去精读了 数据类型和数据结构 这一章,并整理出自己的 IDA原创 2022-05-20 09:27:33 · 677 阅读 · 0 评论 -
python编码问题的一点笔记
Python编码:中文乱码问题:如果开头不声明保存编码的格式是什么,那么它会默认使用 ASCII 码保存文件。这时如果你的代码中有中文就会出错了,即使你的中文是包含在注释里面的。声明中文编码格式的方法是在文件开头加上如下代码。 #coding=utf-8或#coding=gbk设置Python中的编码:# code: 编码格式(美观写法:#-*- coding: UTF-8 -*-)编码类型:GB2312编码:适用于汉字处理、汉字通信等系统之间的信息交换。GBK编码:原创 2022-05-12 15:35:22 · 2344 阅读 · 0 评论 -
关于python魔术方法payload:““.__class__.__mro__[2].__subclasses__()[40](“/etc/passwd“).read() 的解释
关于python魔术方法payload:"".__class__.__mro__[2].__subclasses__()[40]("/etc/passwd").read() 的解释原创 2021-04-13 16:52:01 · 1434 阅读 · 0 评论 -
浅析linux的命令行解析参数之getopt_long函数
前言:在linux中,经常需要各种命令,通常情况下都会带各种参数,而这些参数是如何解析的呢?通常使用GNU C提供的函数getopt、getopt_long、getopt_long_only函数来解析命令行参数。..一、关于命令行参数命令行参数可以分为两类,一类是短选项,一类是长选项,短选项在参数前加一杠"-“,长选项在参数前连续加两杠”–",如下表(ls 命令参数)所示,其中-a,-A,-b都表示短选项,–all,–almost-all, --author都表示长选项。他们两者后面都可选择性添加原创 2022-04-14 15:19:18 · 413 阅读 · 0 评论 -
浅析逆向中 gcc 在主函数前后运行的函数
浅析逆向中 gcc 在主函数前后运行的函数一次逆向中遇到一个密钥在 Init 函数中被修改的例子,所以查了些资料,整理了GNU C 的 attribute 机制。..attribute 机制:attribute 可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。.__attribute__语法格式:__attribute __ ( ( attribute-list ) )前后都有两个下划线,原创 2022-04-14 09:53:37 · 813 阅读 · 0 评论 -
记一次低级的汇编语言代码调试
在汇编语言程序调试中我尝试在记事本中直接加入弹框语句来判断条件句有没有执行:invoke MessageBox,NULL,offset szText3,NULL,MB_OK.然后加着加着发现有点不对劲,比如下面的语句:.if eax != 0FFFFFFFFh invoke MessageBox,NULL,offset szText3,NULL,MB_OK mov @hFile,eax.是的,后来我突然意识到函数通常都是用 EAX 来返回的,如果 MessageBox 函数加在 e原创 2022-04-07 21:12:54 · 273 阅读 · 0 评论 -
记一次 unicode-escape 和 utf-8 编码的互解
记一次 unicode-escape 和 utf-8 编码的转换是这样的,我在做 CTF 题的 RC4 编码时遇到一个 base64 加密后输出的密文:mg6CITV6GEaFDTYnObFmENOAVjKcQmGncF90WhqvCFyhhsyqq1s=..直接 base64 解密后发现输出的是:b"\x9a\x0e\x82!5z\x18F\x85\r6’9\xb1f\x10\xd3\x80V2\x9cBa\xa7p_tZ\x1a\xaf\x08\\xa1\x86\xcc\xaa\xab原创 2022-04-01 16:58:49 · 3225 阅读 · 10 评论 -
记一次hackbar乱码密文中文解码
记一次乱码密文中文解码是这样的,我朋友在做ctfshow的终极考核时突然问我glhf! 和ctshow有什么脑洞类的解密方法。..由于这短短的11个字符的”密文“我实在是想不出和flag有什么关联,因为这些字符和flag关键字的ASCII顺序相差实在太大了,所以也不是什么凯撒密码的变种,可能是我脑子里没有洞了,实在想不出来。..于是进一步询问下朋友给我发了一串密文,说看看能不能获取到什么信息:5oGt5Zac5biI5YKF5p2l5Yiw56ys5LqM5YWz77yBCgrnrKzku原创 2021-12-12 10:46:54 · 1989 阅读 · 0 评论 -
解析 RC4 加密算法(C语言、python)
目录解析 RC4 加密算法(C语言、python):RC4加密算法是一种对称加密算法:加密(解密)原理:RC4算法中的几个关键变量:RC4代码介绍:rc4初始化介绍:包含三个参数:RC4加密:包含三个参数:代码实现:(已注释)C语言代码:Python代码:三丶RC4的逆向小技巧1:逆向特征2:魔改RC4解析 RC4 加密算法(C语言、python):RC4加密算法是一种对称加密算法:对称加密(也叫私钥加密)指加密和解密使用相同密原创 2022-03-08 16:36:03 · 18443 阅读 · 1 评论 -
解析 TEA 加密算法(C语言、python):
目录解析 TEA 加密算法(C语言、python):TEA 加密:XTEA 加密:XXTEA 加密:解析 TEA 加密算法(C语言、python):TEA系列概述:TEA算法是由剑桥大学计算机实验室的 David Wheeler 和 Roger Needham于1994年发明,TEA 是Tiny Encryption Algorithm的缩写,以加密解密速度快,实现简单著称。TEA 算法每一次可以操作 64bit(8byte),采用 128bit(16byt.原创 2022-03-06 10:56:20 · 12378 阅读 · 3 评论 -
记 IDA 中对内存小端逆序的理解
目录大端顺序和小端顺序:低字节和高字节:(左高右低)小端顺序:大端顺序:小端变量以最小拆分单位逆序摆放:那么我们扩展到 CTF 逆向中:最后附上我常规测试代码:大端顺序和小端顺序:低字节和高字节:(左高右低)在编程语言中,字符一般是占16位,8位为一字节,所以有高位字节和低位字节。一个16进制数由1个字节组成,例如:A9。高字节就是指 16 进制数的前 4位(权重高的 4位),如上例中的 A。低字节就是指 16 进制数的后 4位(权重低的...原创 2022-02-09 18:34:45 · 3238 阅读 · 0 评论 -
记一次 python 截取高低位(>> 和 & 运算符)
记一次 python 截取高低位.首先我们要知道低字节和高字节:(左高右低)在编程语言中,字符一般是占 16 位,8 位为一字节,所以有高位字节和低位字节。.一个16进制数有两个字节组成,例如:A9。高字节就是指16进制数的前8位(权重高的8位),如上例中的A。低字节就是指16进制数的后8位(权重低的8位),如上例中的9。.以两个个16进制数为例:0x12,其中1是高字节,2是低字节;0x1234,其中1是高高字节,2是高字节,3是低字节,4是低低字节;.运算举例:内存中的大端小原创 2022-02-07 00:03:12 · 10796 阅读 · 4 评论 -
解析MD5加密算法(C语言)
目录前提概要:MD5加密4步骤:C语言实现MD5算法:(假设加密 iscbupt )附上运行中间结果图:字符串和文件加密实例:前提概要:本篇内容基于haroroda博客的MD5加密算法(c语言实现)和 艾蔓草博客的C语言实现md5函数代码,只是进行简单的融合并附上自己的理解而已,有需要的可以自己浏览上面两篇优秀的博客。MD5加密4步骤: (1)附加填充位 课本原话:填充一个 ‘1’ 和若干个 ‘0’ 使其长度模 512 与 448 同余,然后再将...原创 2021-12-24 15:25:47 · 4445 阅读 · 3 评论 -
CTF密码学总结(二)
CTF 密码学总结出人意料的flag:指在题目中获取到了flag,但是这个flag可能长得不像flag,或者flag还要经过进一步的脑洞处理,而不是常规的解密处理。非预期行为:指解题中出现与预想结果不符合的一系列非预期行为,这基本说明了在中间或前面存在其他自己还没分析的操作。冗余中锁定关键代码:从后往前看,就是确定比较关键对象,从该对象开始排除其他无关变量,一步步找出与该对象有关的其它变量,最后串起找到的所有相关变量,然后开始逆向分析。题目类型总结:题目描述暗原创 2021-11-03 22:39:40 · 49871 阅读 · 4 评论 -
CTF密码学总结(一)
目录CTF 密码学总结题目类型总结:简单密码类型:复杂密码类型:密码学脚本类总结:单独的密文类型(优先使用ciphey工具)多层传统加密混合:Bugku的密码学的入门题/.-:(摩斯密码、url编码、出人意料的flag)攻防世界之混合编码:(base64解密、unicode解密、ASCII转字符脚本、传统base64解密、ASCII解密)单层传统加密:Bugku crypto之聪明的小羊:(题目描述暗示、栅栏密码)攻防世界之转轮机加密:(转轮机加密、)原创 2021-11-01 21:23:03 · 44324 阅读 · 3 评论 -
CTF逆向总结(二)
CTF 逆向总结非预期行为:指解题中出现与预想结果不符合的一系列非预期行为,这基本说明了在中间或前面存在其他自己还没分析的操作。不同系统的特殊数:指解题中遇到考察特定位数系统中特定的数的真实值的时候,需要辨认出对应的值才能继续解题。如:32位系统中100000000就是0了冗余中锁定关键代码:从后往前看,就是确定比较关键对象,从该对象开始排除其他无关变量,一步步找出与该对象有关的其它变量,最后串起找到的所有相关变量,然后开始逆向分析。题目类型总结:题目描述原创 2021-10-21 17:45:31 · 7804 阅读 · 2 评论 -
CTF逆向总结(一)
目录CTF 逆向总结题目类型总结:汇编操作类总结:ASCII码表类总结:逆向、脚本类总结:栈、参数、内存、寄存器类总结:函数类总结:IDA等软件类总结:算法类总结:main函数主逻辑分析(C语言)不能正常运行的exe文件类型:bugku 逆向入门:(实际TxT文件、不能直接运行)攻防世界的csaw2013reversing2:(运行乱码、int3断点考察、函数积累、不能直接运行)攻防世界parallel-comparator-200:(.c文件、.原创 2021-10-17 16:07:41 · 21086 阅读 · 15 评论 -
Python文件结构与逆向分析
运行原理和目录基础理解:Python运行原理概述:Python是解释型语言,没有严格意义上的编译和汇编过程。但是一般可以认为编写好的python源文件,由python解释器翻译成以.pyc为结尾的字节码文件。pyc文件是二进制文件,可以由python虚拟机直接运行。注:为什么运行的python,有时候生成pyc文件,有时候没有呢?Python在执行import语句时,将会到已设定的path中寻找对应的模块。并且把对应的模块编译成相应的PyCodeObject(python中的一个类)中间原创 2021-10-03 21:42:30 · 1898 阅读 · 3 评论 -
CTF中的LFSR考点(一)
CTF中的LFSR考点(一)前提概要:这是我在理解了作者:道路结冰的博客深入分析CTF中的LFSR类题目(一)下写的一次回顾和分析,只是在其中加上自己的见识和理解来加深印象。博客地址:https://www.anquanke.com/post/id/181811#h2-0..前言:LFSR(线性反馈移位寄存器)已经成为如今CTF中密码学方向题目的一个常见考点了,在今年上半年的一些国内赛和国际赛上,也出现了非常多的这类题目,但是其中绝大多数题目目前都没有writeups(或者writeups原创 2021-09-20 22:01:17 · 5271 阅读 · 2 评论 -
Base64 加密解密的 C 语言实现和 python 实现
Base64 加密解密的 C 语言实现和 python 实现由于逆向中设计 base64 加密解密很多次了,每次都不能一样看出来,所以自己用 python 和 C 语言各照着写了一遍流程,希望能给以后加深影响。#include <string.h> #include <stdio.h> #include <stdlib.h> char *base64_encode(char *str) //接收要加密的字符串{ int str_len; //获取输入的字符的原创 2021-09-16 22:30:42 · 575 阅读 · 1 评论 -
汇编指令机器码对应列表
最近做题中要用到指令对应的机器码,上网搜发现都没有对应的列表,于是我自己一个个写入列表中好方便查找,有需要的自取,希望点个收藏和赞。(笑~)l reg8: 8位寄存器。l reg16: 16位寄存器。l mem8: 8位内存数值。l mem16: 16位内存数值。l immed8: 8位立即数值。l immed16: 16位立即数值。l immed32: 32位立即数值。l segReg: 16位段寄存器。 00 ADD reg8/mem8,r原创 2021-08-25 12:00:15 · 1782 阅读 · 0 评论