- 博客(11)
- 收藏
- 关注
原创 [Hgame2023]patchme--keypatch二进制漏洞/smc代码保护
所以对这两处进行patch由于gets 函数的读取效果为读取缓冲区内的所有字符,并将末尾的换 ⾏符换成\0,因此我们考虑将其 patch 为 scanf("%23s",format )的形式,注意这⾥是 23 ⽽不是24。当初做的时候听说第一种解法很难,于是跟着佬用第二种解法逆了出来,但是处于好奇,去学了一下第一种keypatch解法。既然是为了解决二进制漏洞,那就需要知道有哪些二进制漏洞,此题有两种二进制漏洞:gets的栈溢出和printf的格式化输出字符。而对于printf只需加上“%23s”就行了。
2023-05-07 20:42:38
369
原创 [杭州师范大学校赛2023决赛]signin -- upx魔改壳 rc4
再遇魔改upx壳,也是知道如何做这题了,HxD打开文件发现壳的标志性位置全部用ZVM替代了。一眼rc4,甚至都没有魔改,那直接取数据,端序转化拿到flag即可。改回后脱壳就可以读代码。
2023-04-11 21:04:36
966
原创 [杭州师范大学校赛2023决赛]送你一朵玫瑰花 -- 指令集
简单易懂的代码 比较v8与v9地址存的值及之后固定长度地址存的值(就是v8与v9v10v11v12v13首尾相接的比较),相同就会输出Con。所以我们将v9 -- v13首尾相接(注意端序转换)然后进行逆运算即可。may be是一种代码保护手段,用IDA打开文件发现main函数竟然是爆红的,于是刚开始做的时候认为是存在花指令的,但认真看了一下好像不算是花。// flag{Wh4t_@_6eaut1fu1_$1ower} //好像是不太记得了。发现5 个函数,所以本题逻辑比较好理解了。
2023-04-11 20:58:55
260
原创 Re - NKCTF[babyrust] ---新语法rust
下载文件就发现了题目的问题所在,rust是一个从没见过的东西,所以先百度一首rust,发现贴脸就是《Rust程序设计语言》,所以大胆推测本题用了rust语言,而且主要考的就是rust。那么知道了题目的主要考法。(mad,为了尝试写rust的程序好像把我的ida环境搞崩了。。。。。
2023-04-07 20:59:01
375
原创 NKCTF[PMKF] - (迷宫题)
所以我们将迷宫走出来,然后将步数每四个分为一组转化为16进制再与之前的v8也就是nkman的和进行异或,最后再在前面加上0x05就是最终flag。看到main函数,第一个ReadFile函数是读取第一个值5,然后继续ReadFile函数读取长度为5的字符串“nkman”可以看出迷宫的上下左右是0231,没有到4或者更高,在函数中可以知道步数是每四步为一组。再读取0x10长度的字符串并对其进行异或加密。然后就是创建循环走迷宫了。然后将每个字符串加起来。
2023-03-29 20:03:15
379
原创 NKCTF[eazy_baby_apk](DES名字的AES
下文发现MD5加密的confusion,所以我们对其进行MD5加密再充当填充物,最后看解密代码。key1中的e全部用3代替可以得到第一种填充 r3v3rs3car3fully。key1是偏移量,所以vector2就是密钥 ,再对其AES加密可得flag。由此估计,这就是密文。我们对其进行DES解密发现解密不出来,所以继续看代码。找到主要函数部分,一看就是一堆提示信息,向AES加密和DES。接着往下看vector2的内容。apk文件用jadx打开。
2023-03-26 21:35:26
257
原创 Re [G1itch 逆向逆向C++]栈空间偏移
卡一步卡了一个晚上,才知道自己对于指针的了解很差,写一个wp,警示一下。按我的理解就是,a3的每一个值在a2中的位置的下标+48就是最终的答案。打开文件,阅读前面所有代码,可以得出以下内容。a2是x,a3是z,this就是要找的内容。(无非就是异或和base加密)
2023-03-20 20:27:05
232
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人