
编程
Air_cat
keep go on
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
gmpy2与一些python库在vscode下没有自动补全的一种缓解方案
从pycharm的python stubs文件里薅一份gmpy2.py塞到本地gmpy2目录下,解决gmpy2的代码补全问题原创 2024-01-19 15:36:06 · 1713 阅读 · 0 评论 -
关于binwalk->sasquatch插件安装错误与binwalk解压lzma压缩的squashfs的缓解方案
题中这个问题的主要原因是,binwalk使用的sasquashfs仓库所使用的squashfs工具并非是最新版。甚至是这个作者自己写了个patch folder给低版本的squashfs源码打补丁(但就算打了补丁,在高版本的kali和ubuntu20+的版本依旧很难编译)首先就是我们的报错1,相信那是大家搜到这个问题的直接原因。此时,虽然我们使用binwalk所报错的“sasquashfs”命令会提示报错,但对于正常使用mksquashfs工具打包的squashfs系统已能正常解包。原创 2023-10-24 17:06:54 · 1992 阅读 · 0 评论 -
Rust交叉编译简述 —— Arm
在Wsl-Kali下,使用apt安装Arm交叉编译链完成Rust->Arm的交叉编译原创 2023-08-15 20:37:15 · 2352 阅读 · 0 评论 -
CentOS9的yum安装llvm/clang与测试简述
CentOS 9/Stream 的yum安装llvm/clang,并做了IR生成测试原创 2022-12-08 16:50:14 · 2429 阅读 · 0 评论 -
论2022年的嵌入式开发机配置 -- 配置kali2022下的arm-linux交叉编译环境
文章目录arm-linux交叉编译配置通过apt包管理快速配置:写一个demo编译与检查配置qemuarm-linux交叉编译配置通过apt包管理快速配置:sudo apt-get install gcc-arm-none-eabisudo apt-get install gcc-arm-linux-gnueabihfsudo apt-get install g++-arm-linux-gnueabihf现在的apt包能很方便的支持arm的交叉编译链的配置(arm-cross-compiler原创 2022-04-04 22:38:19 · 2349 阅读 · 1 评论 -
LeetCode初级算法日记 Day3 旋转数组
题目地址题目描述:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。进阶:尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。你可以使用空间复杂度为 O(1) 的 原地 算法解决这个问题吗?示例 1:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,原创 2021-03-03 21:45:36 · 189 阅读 · 2 评论 -
VSCode C# 配置小记
写在前面的话:虽说vs是公认最强大的c#工具。但很多时候我只想在本地跑几个简单的测试样例,这时候用vs未免有些累人。于是乎想到了在vscode上再配置一个c#环境。而因为我用vs预装了sdk,所以以下步骤会和网络上其他教程多少有些出入。一、插件安装:这里网络上推荐的一般都是 c#,c#fixformat,c# extensions 第一个和第三个一下就看到了。但是第二个怎么找都没有。稍微查了一下第二个的作用,发现大概就是语法检查。于是我试着先用了一下列表中的Kite AtuoComplete-AI C原创 2021-03-01 20:52:48 · 497 阅读 · 0 评论 -
LeetCode初级算法日记 Day2 买卖股票的最佳时机 II
题目地址题目描述:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。考点:贪心算法示例1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 随后,在第 4 天(股票价格原创 2021-02-25 09:35:36 · 220 阅读 · 0 评论 -
对称加密算法逆向研究
rc4rc4算法经典地分为两大块 – s盒初始化&&加解密。初始化算法实现void rc4_init(unsigned char* s, unsigned char* key, unsigned long Len){ int i = 0, j = 0; char k[256] = { 0 }; unsigned char tmp = 0; for (i = 0; i <原创 2020-10-27 16:08:17 · 399 阅读 · 1 评论 -
论非正常调用cmd的那些姿势(待完善
**写在前面的话:**因为做题做到了一个非常神奇的cmd输入输出方式,因此特立此篇收集整理相关的一些调用cmd的奇淫巧计。GetStdHandle()该函数传入的参数只有三种:STD_INPUT_HANDLE (DWORD) -10 – 标准输入设备STD_INPUT_HANDLE (DWORD) -11 – 标准输出设备STD_INPUT_HANDLE (DWORD) -12 – 标准错误设备其中第三种标准错误设备尚未搞明白怎么用,不过前两种可以为我们的骚气的输入输出方式提供原创 2020-10-10 22:41:41 · 252 阅读 · 0 评论 -
给自己的逆向工程阶段性学习感想总结
想到哪写哪逆向工程的学习比起近似的pwn来说,还是没那么吃基础的。不过基础知识和能力的牢固程度还是近乎决定了一个re手的上限。自己在这方面还是欠缺了不少。目前最吃亏的一个方面是代码分析能力,或者说算法能力,或者说正向能力,发现在做中难题的时候,遇到那种很长的分析流程就会非常气馁,同时也缺少完整地,独立地完成一个复杂情况的分析的经验。针对这一点,接下来需要的一方面是加强tea,aes,des,rc4,smb4题方面的练习与学习,另一方面是和开始学习逆向工程一样,认真地,就着题解去啃中难题。而除了ctf原创 2020-09-19 21:46:21 · 3174 阅读 · 0 评论 -
2020 ciscn 东北分区赛 re题解
唉,居然没师傅出re题,悲伤此题考点在于抓取或解密出迷宫,这里我用的原函数进行生成,改改几个定义就可以输出迷宫了:#include<stdio.h>#include<string.h>#include<windows.h> #include<string.h>#include<tchar.h>#include<stdint.h >//#+OXJ xnB1 QWT4 9cnW cGFB ZOjn yfZo ZV1m 7+/原创 2020-09-19 21:35:19 · 486 阅读 · 0 评论 -
linux内核学习笔记:字符设备驱动学习①
学习视频:linux内核开发第4讲:编写最简单的字符设备驱动学习文章:链接源码:#include <linux/module.h>#include <linux/moduleparam.h>#include <linux/cdev.h>#include<linux/fs.h>#include <linux/wait.h>#include<linux/poll.h>#include <linux/sched.h&g原创 2020-09-08 16:38:47 · 274 阅读 · 0 评论 -
记那些我做逆向题常用到的idapy脚本
解密重覆盖:sea = ScreenEA()end =str = "123"# d = 0for i in range(sea,end): PatchByte(i,(Byte(i)^str[d%3])) d += 1输出十六进制数组:from __future__ import print_function#支持py2使用py3的函数from __future__ import print_function#支持py2使用py3的函数sea = ScreenEA()fo原创 2020-08-21 12:21:02 · 625 阅读 · 0 评论 -
深入理解计算机系统(第三版) 第一章学习笔记
提取码:wrzg第一章 计算机系统漫游①信息就是位+上下文在计算机中的所有信息,本质上就是一个由值为0和1的比特(位)组成的比特序列 – Bit - Sequence而就像“个十百千”这样的位数,每八个比特构成一个字节,如比特序列11110000 ,而每4个或者8个字节又可构成一个字(分别对应32位系统和64位系统);同时,因为位数是对应了数据的二进制表达,即二进制数的位数等于其长度。所以也可描述操作系统的位数为,字长4个字节(字长32位)或者字长8个字节(字长64位)。而上下文是什么呢? 上下文原创 2020-08-19 21:20:53 · 349 阅读 · 0 评论 -
论SMC的实现(2) -- 代码实例(更新ing)
环境:VS2019 release,关随机基址开固定基址,关数据保护,优化OD级别,关全程序优化,段RWE实现方式①:原文件函数加密这里咱们先写一个简单的输出函数,并在程序中为其写好解密函数:然后调试一下,可以发现这里成功对函数进行了加密执行完成后的函数:好,那么在完成这一点之后我们再对生成的exe文件里的函数进行加密,就可以完成我们的smc程序了。这里的难点主要是在于对函数进行定位。我先来讲比较简单的一种:增设段。这里的操作就如下图,将我们的加密函数给包裹起来:ps:别忘了把这个段也设置成RW原创 2020-08-15 08:51:14 · 927 阅读 · 14 评论 -
老狼RAT(远程辅助管理员软件)学习笔记(一)
一、vs2019下的MFC对于MFC的使用,我们不仅仅只安装MFC相应支持项目,还得安装非常多多其它的控件,总归是vs里跟c有关的最新版的控件全安一遍就完事了,不然就会发现和视频教程里的一些操作很难契合。比如之前我少安了一个控件(我也不知道是哪一个),然后类属性里的消息就框和事件框就一直莫得,后面我全安了一遍过去它就自动出现了。二、善用枚举变量使用枚举变量的目的是在于减少需要添加或者删除东西的时候,代码更新的工作量。最典型的例子是比如有一个我喜欢的东西的集合{1草莓,2西瓜,3冰淇淋,4板栗饼,5火锅原创 2020-07-29 09:31:38 · 810 阅读 · 0 评论 -
论解RSA题所需的gmpy2和rsa的安装与使用事项
折腾了差不多一个晚上终于算是把环境配好了,这里列出几点经验谈:一、正常的pip安装不行的时候,gmpy2可以安装其2.0.8版本的安装包,在gmpy2下直接能跑二、rsa如果提前安装好了之后,似乎不太能安装py2的版本,会使得py2不支持rsa。三、想要让环境同时安装好gmpy2和rsa,还是得用离线安装的方式,并且是对特定工程离线安装(能否全局支持这里我没做尝试)。那么这里就得在pychram的工程目录里的venv\Scripts下进行安装,比如我的是E:\PY\5\venv\Scripts。这是就原创 2020-05-16 00:51:08 · 825 阅读 · 0 评论 -
论用C语言写一个PE解释器(3)
论用C语言写一个PE解释器(3)前情提要在上一篇文章里,我们提到了PE解释器的基本执行流程,但是还有很多细节的部分没有提到。而我们现在就来完善这些细节。一、关于解释文件用的指针可能在上篇文章中,有读者会有疑问,”可不可以用FILE文件指针来进行操作呢?这么简单直接“。理论上是可以的,但是需要知道的一点是,FILE其实是...原创 2020-05-15 11:18:26 · 924 阅读 · 3 评论 -
论用C语言写一个PE文件解释器(2)
论用C语言写一个PE文件解释器(2)前情提要:在上一篇,我们讲了有关PE文件和文件结构的一些基本概念。这东西其实就是一类结构体。1、该怎么进行文件解释这里我们不系统性地做知识的讲解,默认大家至少已经了解了基本的PE文件结构。那么一个PE文件解释器其实就是能够提取文件结构里的各个元素,并按照其应有的意义和格式显示出来。比如我们常用的StudyPE就是PE文件解释器的一种。而文件解释的流程可以...原创 2020-05-08 14:01:36 · 408 阅读 · 0 评论 -
论用C语言写一个PE文件解释器(1)
论用C语言写一个PE文件解释器(1)因为在初学PE文件格式的时候吃了很多的苦,这里想用一种通俗易懂的方式来讲解这么个东西。而这第一篇,准备先不或琐碎或系统性地讲一讲知识性的东西;我们来谈一谈PE文件结构的本质1.什么是PE文件?PE文件的全称是 Portable Executable File – 可移植的可执行文件。最常见的就比如我们的exe文件,还有如dll,sys,com文件。2....原创 2020-05-08 00:10:24 · 549 阅读 · 0 评论 -
Windows内核学习(1)
Windows内核学习内存、进程、线程、I/O等核心体设备驱动硬件抽象层(HAL)内存布局2GB内核空间 0xffffffff64kb非法空间 0X7FFFFFFF进程空间 0X7FFF00064kbNULL空间 ...原创 2019-11-12 00:01:03 · 410 阅读 · 0 评论 -
关于c/c++的各种编译器的调用约定(更新中)
调用约定简述:–通过在不同的IDE里编译程序,观察各个IDE的调用约定的细节与差别。一、压栈规则/调用约定:首先,在c/c++中,printf的本质是一个在<stdio.h>中所具有的函数,所以实际上里面的一些参数的传递,实际上也是遵守编译器所自使用的调用约定的。在这里,我们举一个例子:int i=3;printf("%d,%d,%d,%d,%d,%d,%d",i++,+...原创 2019-09-28 20:22:26 · 624 阅读 · 1 评论