程序career
Air_cat
keep go on
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
关于qiling->UC_ERR_FETCH_UNMAPPED等执行EXE时内存错误的问题
使用wsl虚拟机,正常走了qiling配置流程后无法使用qiling对样例之外的exe进行模拟,会在执行到dll时,在dll的代码中报出内存未分配等读写错误。系统:kali、ubuntu20、ubuntu22。原创 2023-11-02 18:01:21 · 464 阅读 · 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 · 2321 阅读 · 0 评论 -
CentOS9的yum安装llvm/clang与测试简述
CentOS 9/Stream 的yum安装llvm/clang,并做了IR生成测试原创 2022-12-08 16:50:14 · 2554 阅读 · 0 评论 -
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 · 206 阅读 · 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 · 549 阅读 · 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 · 235 阅读 · 0 评论 -
HITCTF2020 -- re1 HelloReverse wp
程序分析打开,没什么用的input flag:ida 打开,定位到main函数:作为一道基础re,前面的内容都没什么好说的,输入,长度校验。但后面的内容就开始诡异了起来。首先是给v8赋值的那个变量嗷,不对劲啊不对劲:想来应该是在入口点进行初始化了,一看果然是。打开看看完事一半嗷在比赛的时候想的是先不管他,看看底下的程序一个逻辑我好像看懂了,但其实没看懂的变换。简单的来说是输入串异或来以获去,然后还要和上面那个很迷幻的玩意进行一个比较。这个很迷幻的玩意进行了左移操作,但这个左移菜菜原创 2020-12-11 21:38:40 · 526 阅读 · 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 · 465 阅读 · 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 · 279 阅读 · 0 评论 -
BUUCTF杂项(misc)题练习记录 -- (3)
LSBLSB – Least Significant Bit 即最低有效位隐写,其最直接的解法是运用stegsolver的anlayze的data extract功能,将最低位(红绿蓝的0位)0勾选上,右侧的比特序(bit order)选择LSB优先(LSB first)。之后右下角可以用preview生成数据。这题也是一样,走了一波上面的流程之后,可以发现最低有效里隐写了一张png文件:之后再选择下方的save bin,就可以将这个隐写的图片报存下来。发现其为一张二维码,扫码后可得flag:文原创 2020-09-23 10:27:43 · 709 阅读 · 2 评论 -
给自己的逆向工程阶段性学习感想总结
想到哪写哪逆向工程的学习比起近似的pwn来说,还是没那么吃基础的。不过基础知识和能力的牢固程度还是近乎决定了一个re手的上限。自己在这方面还是欠缺了不少。目前最吃亏的一个方面是代码分析能力,或者说算法能力,或者说正向能力,发现在做中难题的时候,遇到那种很长的分析流程就会非常气馁,同时也缺少完整地,独立地完成一个复杂情况的分析的经验。针对这一点,接下来需要的一方面是加强tea,aes,des,rc4,smb4题方面的练习与学习,另一方面是和开始学习逆向工程一样,认真地,就着题解去啃中难题。而除了ctf原创 2020-09-19 21:46:21 · 3229 阅读 · 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 · 511 阅读 · 0 评论 -
BUUCTF逆向题练习记录(wp) --(4)(偷懒三题
[GKCTF2020]BabyDriver简单win驱动。拖ida仔细分析即可。注意寻找关键函数。[FlareOn6]Overlong这题个人认为非常有意思考察的点在于①发现数组长度远大于给的长度参数0x1c②通过动调直接得出结果。这一题还给了一个附件,提示运用正确的方法进行解密可以很快得到flag,而我们知道,ctf的re题中,最快的解密往往就是动调一把梭。需要大胆猜想,大胆尝试。[WUSTCTF2020]Cr0ssfun额,无脑拼接嗷...原创 2020-09-18 21:59:26 · 612 阅读 · 0 评论 -
BUUCTF逆向题练习记录(wp) --(3)WUSTCTF2020&&level1-4已完成
注:funnyre待我搞懂angr后来解WUSTCTF2020-level1解密嗷hexData = [0, 198, 232, 816, 200 , 1536 , 300 , 6144 , 984 , 51200 , 570 , 92160 , 1200原创 2020-08-28 11:56:27 · 605 阅读 · 1 评论 -
深入理解计算机系统(第三版) 第一章学习笔记
提取码:wrzg第一章 计算机系统漫游①信息就是位+上下文在计算机中的所有信息,本质上就是一个由值为0和1的比特(位)组成的比特序列 – Bit - Sequence而就像“个十百千”这样的位数,每八个比特构成一个字节,如比特序列11110000 ,而每4个或者8个字节又可构成一个字(分别对应32位系统和64位系统);同时,因为位数是对应了数据的二进制表达,即二进制数的位数等于其长度。所以也可描述操作系统的位数为,字长4个字节(字长32位)或者字长8个字节(字长64位)。而上下文是什么呢? 上下文原创 2020-08-19 21:20:53 · 372 阅读 · 0 评论 -
论SMC的实现(2) -- 代码实例(更新ing)
环境:VS2019 release,关随机基址开固定基址,关数据保护,优化OD级别,关全程序优化,段RWE实现方式①:原文件函数加密这里咱们先写一个简单的输出函数,并在程序中为其写好解密函数:然后调试一下,可以发现这里成功对函数进行了加密执行完成后的函数:好,那么在完成这一点之后我们再对生成的exe文件里的函数进行加密,就可以完成我们的smc程序了。这里的难点主要是在于对函数进行定位。我先来讲比较简单的一种:增设段。这里的操作就如下图,将我们的加密函数给包裹起来:ps:别忘了把这个段也设置成RW原创 2020-08-15 08:51:14 · 973 阅读 · 14 评论 -
论SMC的实现(1) -- 基础实现手法&&坑点规避 (转下一篇)
环境配置:Visual Studio 2019 关闭动态基址,打开固定基址,关闭全程序优化,优化级别OD,关闭SDL,发布版本为Release,SMC(Self Modifying Code) 即动态代码加密技术原创 2020-08-09 00:41:24 · 915 阅读 · 0 评论 -
BUUCTF逆向题练习记录(wp) --(2)
注:常规处理,如upx脱壳不注明。[GWCTF 2019]xxor主要代码1: for ( i = 0; i <= 5; ++i ) { printf("%s", "input: ", (unsigned int)i); __isoc99_scanf("%d", (char *)&v6 + 4 * i); // 每个存四个字符 } v11 = 0LL; v12 = 0LL; v13 = 0LL; v14 = 0LL; v15 = 0LL;原创 2020-08-06 16:48:54 · 1034 阅读 · 0 评论 -
BJDCTF2020 --逆向题练习记录(题解wp)
[BJDCTF2020]JustRE题拿到了,看起来这种点一万次的东西可能会藏东西在资源文件里,Resources Hacker看了看没东西。那正常来看看,Exeinfo 32为VC6无壳。查串(其实直接在处理函数那边看一眼就看到了)后在处理函数里找到猫腻,这里需要点20000次,跟我连点器比划比划?(x)其实直接可以读出来,这里的flag是19999,0拼接那个明文。BJD{1999920690a45792d233ac}[BJDCTF2020]easy起手几个步骤就先忽略,,开头就被“Ca原创 2020-07-30 09:23:15 · 737 阅读 · 0 评论 -
老狼RAT(远程辅助管理员软件)学习笔记(一)
一、vs2019下的MFC对于MFC的使用,我们不仅仅只安装MFC相应支持项目,还得安装非常多多其它的控件,总归是vs里跟c有关的最新版的控件全安一遍就完事了,不然就会发现和视频教程里的一些操作很难契合。比如之前我少安了一个控件(我也不知道是哪一个),然后类属性里的消息就框和事件框就一直莫得,后面我全安了一遍过去它就自动出现了。二、善用枚举变量使用枚举变量的目的是在于减少需要添加或者删除东西的时候,代码更新的工作量。最典型的例子是比如有一个我喜欢的东西的集合{1草莓,2西瓜,3冰淇淋,4板栗饼,5火锅原创 2020-07-29 09:31:38 · 875 阅读 · 0 评论 -
CTF解题小记--心得记录1
CTF解题笔记 (Aircat)RSA题没什么好说的,解析后分解大素数,py脚本解密。(逆向不会考高难rsa吧,,大概)参buu还是xctf的某一题import gmpy2import rsa e=65537n=86934482296048119190666062003494800588905656017203025617216654058378322103517p=285960468890451637935629440372639283459q=30400874160460192449432原创 2020-07-27 09:11:14 · 649 阅读 · 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 · 656 阅读 · 1 评论 -
汇编阶段性学习内容反省(3)--汇编与函数与与逆向分析
特别说明这一次由于时间跨度大,所以文章内容将不如上一篇反省所说是关于转移指令,而是一篇近期所学内容的小总结。正文之所以写这篇小总结,很大程度上是在阅读了《加密与解密》的第二章的部分内容,与《D.REC++反汇编与逆向分析技术揭秘》的前三章之后受到了很大的启发,1.对于程序数据的装载 – 即函数参数的入栈顺序–通常是参数从右到左的顺序进行push入栈,也可能从左到右,也可能因为程序调用约定等...原创 2019-09-21 20:02:59 · 293 阅读 · 0 评论 -
汇编阶段性学习内容反省(1)
写作原因:因为在稍稍过了一边汇编语言(王爽所著的《汇编语言》)之后没有对知识进行加深积累,因而在一阵子的期末复习之后,感觉知识都忘得差不多了,(说白了就是菜)因而现在进行一波知识(zai)的(xue)整(yi)合(bian)。写一个asm文件:首先,我用的编写工具是MASMplus,(当然记事本什么的也可以)接下来开始敲代码:我这边打算写一个简单的加减赋值程序,先给ax赋值3,然后再让它加...原创 2019-07-16 22:42:08 · 244 阅读 · 3 评论 -
BugKuCTF逆向--love 题解
题目地址:https://ctf.bugku.com/files/0306fd73281571871e48b6e836d507bd/reverse_3.exe跑一下,随便输入一个数字,关闭了。那么用od载入试一试:哦?那么这题应该就不是od调试的问题了,而该用ida静态分析解密。用ida载入:显然Dest是我们通向flag的大门,这里对Dest进行了一个简单的加密,但根据前面得到的那...原创 2019-08-21 11:25:21 · 1120 阅读 · 2 评论 -
汇编阶段性学习内容反省(2)
本节内容本此反省将复(chong)习(xue)一下有关cs:ip,ds:sp,以及和转移指令有关的一些内容。因为之前在学的时候,我就对cs:ip和ds:sp对内存和cpu的一些意义以及用法不甚明白,对转移指令的理解也不甚清晰,因此这里对这些内容进行一些反省,以此来巩固知识。内存&栈...原创 2019-07-18 22:10:08 · 220 阅读 · 0 评论 -
关于环境变量的设置一直出错--在为ipconfig配置变量时遇到的问题
故事的发生之前因为使用ipconfig时提示“ipconfig”不是内部或外部命令,查了查百度发现要配置环境变量,而我就蛮好着着他们的路径去配置了,结果怎么配置怎么不对,而这时我又发现各个教程上配置变量时有大写有小写,如C:\WINDOWS\SYSTEM32,或者是c:\windows\system32于是我就再想,如果他们都可以用这些路径配置成功的话,系统是怎么区分大小写不同的路径呢?然后我再...原创 2019-05-14 19:35:12 · 1022 阅读 · 0 评论
分享