自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 断点检测学习

最开始的时候就遇到了一个问题,我用的virtual studio ,但是这是c++编译的,导致最后的函数指针不是指向的fun函数,这里可以很清楚的看到。这种方法很简单,也很容易绕过,我们来看一下硬件断点,硬件断点基于DRx寄存器,换句话说,可以通过检测DRx寄存器来检测硬件断点。突然看到了一种反调试的手段,检测api函数的首字节是否为0xcc,即int 3类型的断点,来反调试,尝试一下。对于内存断点,是以页的方式添加的,设置页的权限位就行了,最常用的两种断点实现了最常用的检测方式。

2023-11-21 20:13:01 265

原创 re 2019安洵杯复现

先贴出解密代码,最开始还以为是一个数独游戏,结果和数独关系不大,这道题用deflat脚本我没恢复trace函数,但是不影响,直接看加密代码。check2中让D0g3和给定的sudoku比较,其中,D0g3中的0元素是自己输入的经过check1加密后再减48得到的。check1函数中一共有三个操作,分别是前一半和后一半换位,奇偶换位,和一个对称的加密,64位elf,ollvm混淆,直接用deflat就能去混淆。

2023-11-20 19:44:00 125

原创 re 2021强网杯复现

其中,每一个加密中有一个额外的xor,还得恢复这个,分别异或的是0xfd,0x1fd,0x3fd,0x7fd。如果直接解密,很容易发现,用不了几轮,v3 的值就溢出了,这里很明显是两位输入用的int16来接受的。但是,最开始我以为是个很简单的对称加密,仔细看了看比较绕,实现了类似数列的一种吧。结合师傅的wp,发现这里是一个求积分的操作,没看出来,确实厉害。v3的初值是在运行中修改了的,静态的时候看着是0.2021。64位elf,看起来逻辑挺简单,接受38位的输入。最后,对tea加密分析的结果是。

2023-11-19 20:20:21 200

原创 re DASCTF x CBCTF vm_flutter复现

当时做题的时候用frida hook额,没找对hook的位置,额,找了mainactivity的三个函数尝试了hook,但是呢,没hook出什么有用的信息,打印出的信息,要不就是object,要不就是个函数,有点小崩溃,看了官方wp,才看到了hook的位置,flutter没有函数名有点小难受。这里是一个33位的循环,直接分析一位的操作就行,先push输入,然后push连续的两个值,执行出栈后执行add操作,在与输入进行xor操作,最后store,改一下hook代码。这就能找到所有的密钥。

2023-11-08 19:04:05 148

原创 re 2023年鹏城杯复现

手动恢复非常困难,但是由于这里的opcode我导不出来,额,就算导出来了,这里的操作数也不太容易理清,借鉴一下师傅的脚本。ida动调,发现是rc4,那就用最简单的构造11111111然后再异或ord(“1”)得到密钥,然后就可以直接解密了。还以为给的dllpatch过了,我还自己看了一下dll,发现没有被修改,那就直接调用标准库解密。这个题,我是赛后复现的,当时不知道怎么做,知道是vm也恢复不出源码,跟着别的师傅的wp复现一下。然后放ida中分析,就是一个很清晰的tea加密了,太nb了,学习了。

2023-11-07 19:06:46 162 3

原创 vmware 网络问题经验

之前16的vm用得好好地,好像哪出问题了,去下了一个17的,但是我习惯性地没用自带的删除软件,直接删除了文件夹,导致网卡一直装不上,搞我好几天了,几天看到了一个教程,重要好了,推荐一下。

2023-10-20 16:06:11 29

原创 某010editer逆向案例

想用一个010的模板,之前的010不知道为什么用不了,看看是不是版本问题,搞个新版试试,但是是30天的试用期,之前听说过010比较容易破解,试试,真的很容易。根据这段话,搜索invalid license,能够搜到。到这里就成功了,可以愉快的开始使用了(仅供学习参考使用)额,被自己蠢哭了,把04改成40了,我说怎么运行不了。64位,cpp写的,ida先看看。ida里破解成功了,艹,忘保存了。还是先看能不能用字符串定位函数。那手动用010破解010吧。

2023-09-23 17:31:11 1016

原创 nssround re复现

程序逻辑很清晰,如果有dll的话,就怎么怎么样,如果没有,就让输入什么,然后有什么操作,那首先就是恢复dll,直接运该程序,会生成一个dll,但是肯定不是dll的格式,跟进一下,发现是用输入的秘钥,然后tea加密一次,生成一个秘钥,用该秘钥与abab异或,所以只要找到秘钥流就行,而且这个abab看起来就像一个pe格式,那直接和正常的pe格式异或一下,秘钥流就出来了(首先我们跟进程序,发现秘钥流有10位)这道题确实不会做,看了看网上师傅们的做法,有个师傅用ce修改轮数,唉,完全没想到,师傅tql。

2023-08-05 17:12:27 139

原创 re *ctf2023 gogpt复现

挺简单的,一个base64,一个xor,就是程序储存字符串的时候有点意思,直接给代码吧。golang的逆向,用8.2看起来还是很方便,之前写过go逆向的入门。先base64解码,再和给的key xor。

2023-08-02 21:56:38 123

原创 re *ctf2023 ezcode复现

给了一个文本chall的文件,先简单看看,发现能用文本的形式打开,看上去有点像jsfuck,当时猜到了可能是什么脚本之类的,但一直没往powershell上想。是一种特殊的语法,用于展开传递给脚本的参数列表(Arguments)。表示传递给脚本的参数列表。它类似于数组,包含了脚本接收到的所有参数。看有的师傅的做法,用powershell ise来调试ps1脚本,展开参数列表,将参数列表中的所有参数作为独立的元素进行展开。是个xxtea,但是第二个define的位置被改了,又忘看了。下好断点后执行这个命令。

2023-08-02 21:53:08 84

原创 re DASCTF 7月赛 X 0x401 controlflow 复现

40位的flag,直接跟进,几个简单的处理,麻了,被10和11搞了一会心态(减的时候减错了)直接跟进就行这个程序流程很清楚,细心一点就行。#第三步:从第十位开始,^(i)(i+1)#第五步:隔两位,第一位与交换第二位。#第二步:加i**2取低两位。#第一步:^0x401。

2023-07-23 12:59:43 91

原创 go语言逆向学习笔记(三)c、go混合编程

最开始我们执行了一个check函数,放入ida之后发现,ida能够识别check函数,而且ida的字符串窗口确实有this is in c code 的字符串,但是交叉引用找不到引用的函数,而check函数一定被使用了,所以猜想是call+寄存器之类的指令。左图是golang编译的check函数,右图是c编译的check函数,为了保障严谨,两个都是同一个版本的gcc,同一个版本的ida,而且我golang源码中也用的是printf,为什么变成了puts。总的来说,go和c的混合编程非常爽,太nb啦!

2023-07-20 22:41:03 1211

原创 DASCTF 2023六月挑战赛|二进制专项cap复现

最开始的时候忘了C语言变量有长度的,python一直报溢出,加个0xffffffff就好了,然后就直接写文件了。对给的cap.bin进行读写操作,看了官方wp才知道是bmp格式,核心加密段在这里,但是根据这样来写应该是这样。这里v11就是filew,写的是同一个文件。

2023-07-07 16:39:32 116

原创 DASCTF 2023六月挑战赛|二进制专项ez_exe复现

有点小搞,python逆向,最开始从pyc里还原出源码的时候不太能看懂,就只能看懂几个读写的操作,当时没太懂意思,然后运行程序后发现bin1变成了exe,提示是用exe来解密bin2,脑子抽了,没懂意思,结果是直接patch原exe的bin1成bin2,以这种方式解密,解密完bin2就是一个简单的xxtea。除了盖delta的数值外,解密的轮数也变了,直接用52/n(找了好久,小搞)

2023-07-02 16:44:36 201

原创 go语言逆向学习笔记(二)函数

调试过程中,从内存的字符串也能看出,编译时并未把happy函数当做独立的函数来出处理,而是直接将源代码中happy函数的代码写入main函数,作为一个统一的函数来处理。ida的函数识别只识别出来了hello函数,并未识别happy函数,应该是hello函数中用了go关键字,新开了一个协程。此时我们用指针来调用函数,ida就能识别出touful函数了,也就是说,编译时给touful函数单独划分了栈帧。至于指针,如图就是用指针调用函数的过程,可以看出,总的来说,go的指针是比较方便使用的。

2023-05-04 19:37:06 285

原创 go语言逆向学习笔记(一)变量和指针

这就导致动调有可能会进入比较难理解的代码段,比如没见到跳转指令,指令突然就变了,这时候对于不是程序主动开的协程,在不影响运行的同时,可以用ida将其暂停。前两个是println的参数,后面一个我不知道是什么,大佬教教,在go的源代码层面来看,a,b的地址是一样的,也就是说go语言的变量和指针在一定条件下都可以说是指针。在官网嫖了一个8.2的ida,反编译go的效果还不错,至少比7.7好得多,相比于rust,go还是更友好一点,打算结合C语言的反编译来系统学习一下go语言。纯新手小白,大佬多多指正。

2023-05-04 18:53:42 354

原创 re DASCTF Apr.2023 X SU战队2023开局之战gotots 复现

ida7.7反编译不出来,去官网下一个8.2的免费版,8.2真强。rdx应该是计数,到最后一次在看看密文。短两端,先复制一段内存,再加解密。根据之前的逻辑,是简单的xor。

2023-05-04 12:08:24 118

原创 植物大战僵尸中文版修改器python实现

新手小白,结合网上的教程,简单写了一个python版的植物大战僵尸修改,冷却的问题因为机器码长度限制,改成了f倍,就是15倍,试用了一下,还不错。dll文件应该位置都是一样的吧,应该能直接用,比较捡漏。ps:仅用于学习交流,如有侵权,请联系作者删除。

2023-05-03 21:45:47 926

原创 re DASCTF Apr.2023 X SU战队2023开局之战 复现

用这个脚本一定要确保python版本一致,题目是3.11。Python版本问题,3.11弄不好,手搓。

2023-04-23 22:13:49 378 1

原创 re [HNCTF 2022 WEEK3]Help_Me! 复现

使输入的课对应的序号相加小于等于200,乘积最大,就这么个小东西,我写了好久,最开始想递归爆破吧,应该是编程能力太差了,写了好几次都不行,想到原来稍微学了一点的整数规划,cvxpy救大命了。解出的结果是[0. 1. 0. 0. 1. 0. 1. 0. 0. 0. 1. 0. 1. 1. 0. 0. 0. 0. 1. 1.],也就是1 4 6 10 12 13 18 19。64位exe,无壳,逻辑倒是很简单。

2023-04-21 13:09:38 137

原创 re [强网杯 2022]easyre 复现

这个0xcafeb055bfcc就是当子进程int 3中断时对父进程的返回值,但是我不知道为什么,ida动调时,elf好像不能交互,平时让我输入flag的也不行,这道题返回值既不是0xCAFEB055BFCC,也不是0xCAFE1055BFCC,是一个我不知道的东西(随机值),我动调就进不去,进去了父进程与子进程也不能通信,很烦,不知道为什么,师傅讲讲。64位elf,有点难搞,放进kali试运行一下,发现有个图标一闪而过,猜想有文件操作。我不知道是什么,看大佬的wp说是数织游戏,我不懂。

2023-04-20 20:57:33 273

原创 re [MoeCTF 2022]Art 复现

最开始我的解法是这样,一直解不出来,我也不知道原因,后来看了dfs深搜,简单的递归一下,才出的,果然是多解。,就是解密我不知道怎么解,那个401550函数,看官方wp上说是为了防止多解。

2023-04-20 19:34:23 176

原创 re [网鼎杯 2022 青龙组]Handmake 复现

第一次看go语言源码,有点震撼,15万行,作者真强,怎么写出来的,第一次配go语言环境,看了看代码,逆应该逆不出来了,我电脑编译一次都要好几分钟,运行发现他让我输入一个函数,第一个好找,在源码里找。没学过go,他输入第一次后就直接退出了,后来看别人的wp才发现两个scanf之间加一个fmt.Scanln()才能正常输入。看不懂,上翻译,直接ctrl f gllhr一个个比较就行。慢慢找吧,50多个,

2023-04-15 18:23:12 79

原创 re [网鼎杯 2022 青龙组]fakeshell 复现

大体逻辑是,先判断长度是否等于20,再加密,加密函数很简单,有两部分,直接写出脚本。64位exe,upx魔改,放入010改回upx就行。放入ida,动调不了,静态看看。

2023-04-15 16:15:56 94

原创 re [网鼎杯 2020 青龙组]jocker 复现

本来想直接用subprocess爆破出来的,反正只有4位未知了,最后是},但是第一次用,没想到给我报了60多个flag,都是错的,而且到最后我把正确的flag带进去也没有什么独特的回显,只能继续往下做了,接下来是fanally函数。}一看就是假的,但是知道了flag是24位的,接着往下走,encyrpt函数里是关键加密代码,有个smc,可以写脚本静态,我用的动调。放入ida,最开始堆栈不平衡,ida不能很好的反汇编,先手动修改一下,然后有个假的flag。

2023-04-14 18:44:11 99

原创 re [MTCTF 2022]small 复现

是tea,稍微改了一下,加密35轮,

2023-04-13 16:32:02 55

原创 re [MTCTF 2021]wow复现

32位exe,upx壳,直接自动脱掉就行,但ida反编译出了问题,最开始看伪代码有点困难,先看看汇编,发现大体流程,结合题目hint是xxtea,手动修改函数和栈。最后那里还是有点问题,是输出right字符串的,不是加密代码,没有再处理了。其中delta是1732584193,密钥盒key是。是flag了,整理一下就行。xxtea的加密解密参见。

2023-04-13 12:48:08 190 1

原创 re [长安杯 2021]virtual 复现

太长了,稍微处理一下,不然看不出来,开始犯了个离谱的错,我对mov指令的i+=6了,导致看不到后面的密文,看了一下别人的wp,再直接看机器码,被自己蠢哭了,应该只加一位。64位exe,无壳,虚拟机逆向,看到指令和opcode我承认我慌了,把opcode导出为txt文本,居然有100多kb,有点小麻。这个0x17的指令确实没看懂,结合整体来看,应该是比较指令,反正我是完全看不出来。看到题目描述,我没看懂,最后才发现是解一个32元一次方程,过于抽象。原来要先check才能输出,我说怎么一直输出不了。

2023-04-13 12:14:25 346

原创 [CISCN 2022 东北]crackme_Android复现

放入jadx,简单的逻辑,flag{4aea146e9dc7365e4ec931f547284822}判断flag内的内容每4位MD5后的值与给定的字符串是否相等。网站解密,得到flag内的值。

2023-04-05 13:32:37 179

原创 [CISCN 2022 东北]easycpp 复现

动调通过buf2找到密文,直接写回去就行了,注意密文需要逆序。flag长度为38,构造一个38位的字符串放进去动调。这里是加密逻辑,将输入的flag每四位为一轮异或,64位exe,无壳,直接动调看看基本逻辑。

2023-04-05 13:22:28 299

原创 [HGAME 2022 week4]ezvm 复现

本题主要采用的是动调的方式,看别人的wp写判断输入是32位字符串,我一直没找到在哪,最后实在没办法了,带入了答案flag,断点下在switch上,因为找不到指令,f9很长一段时间后,我发现,终于,指令的调用有了变化,最开始一直在getchar循环,到这时才调用了xor和*=2(看别人wp说是左移一位,都一样),也就是说,这时才进行加密,也直到这时,我才看到了指令集的偏移,到这里了,就没管指令了,反正是exe,干脆直接调下去。64维exe,无壳,看名字知道这是vm的题,放入ida,进入main函数。

2023-04-04 22:00:09 468

原创 [NCTF 2018]wcyvm re 复现

极其简单的入口,结合题目,直接找vm代码就行了 ,在400DB7中。我觉得这道题对我来说,主要是指令比较多,构建了大概30个指令,像简单的mov,xor还好,像什么jmp,jne我掌握不是很好,只能对着大佬的wp复现了。64位elf,无壳,由于本人电脑硬盘爆了,没有虚拟机的空间了,等硬盘运到再动调吧,找个简单的vm静态分析。纯ctf小白,求大佬指点。读取自己分析出的汇编指令,逻辑是,先输入字符串,记为flag,加密逻辑是。指令存在6021C0中,注意类型的大小 ,简单整理一下。这里我顺序搞反了,逆序为。

2023-04-04 19:43:23 200

原创 离散数学作业:返回合式公式的层次

print('输入格式错误!(左右括号不相等或空格输入不符合标准)')def chengci_part(self,arr):#判断小部分层次!def sreach_next(self,a):#找()部分,从(找到)print('不是合式公式!print('不是合式公式!print("每个字符需有空格,每个运算需有括号!def chengci_all(self,arr):#切片传参。print("输入格式错误!def init(self,input):#假迭代器。a=input("输入公式:")

2023-04-03 17:15:59 246

原创 离散数学作业:输出合式公式真值

print('输入格式错误!(左右括号不相等或空格输入不符合标准)')简单记录下老师让我们写输出合式公式真值的程序,新人小白,代码比较菜,别喷。print("每个字符需有空格,每个运算需有括号!print("输入格式错误!print('非命题公式或其他错误!a=input("输入公式:")#非 1 not 1==0。

2023-03-31 21:08:44 176

原创 [AFCTF 2018]雕虫小技 re wp

32位exe,无壳,直接拖入ida,有一处花指令,最常见的0xEB,转换为数据在转换为代码即可。这里我犯了一个弱智错误,我以为2的8次方是128,结果是256,导致我最开始没写出解密脚本。动调找到加密代码,左移、右移四位,再进行与运算,但是这里是al和ah,只有8位。

2023-03-31 20:58:37 132

原创 nkctf逆向(re)PMKF复现

具体有三个文件读取,这里有个小tips,他读的是C盘,如果没以管理员身份运行,可能会打不开,我不想以管理员身份运行,就直接将C patch 成 D,D盘开文件限制就小了。将其读取的字节,每两位与3进行与运算,也就是说,读取的16个字符实际是每两位判断一次,共64次,对照上面的迷宫步骤,刚好是64位。并按位异或0x15(v8的值),写入nk.ctf文件。第一个判断,也就是nk.ctf读取的第一个是0x5。第二个判断,nk.ctf读取的是“nkman”第三个判断,也就是走迷宫的判断,先画出迷宫图。

2023-03-29 12:08:52 713

原创 手脱upx壳的一次探讨

三,(可能会随着环境的不同而不同)程序的dll和exe两部分,姑且让我这么说,有非常明显的特征,exe是让人赏心悦目的401000左右,dll地址非常大,但是用途不大,其中有一个回调,但不是tls,在这个回调之后单步进入才能找到真正代码段,因为helloworld非常短,接下来就是简单的找push ebp过程了。有师傅问我如何手动脱壳,虽然手脱过几个exe,但我以前一直没有仔细研究过手动脱壳,一直以来都是简单的找push ebp mov ebp,esp。今天做几个简单的讨论。本人小白,请各位师傅斧正。

2023-03-27 20:03:13 214

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除