随笔分类 - CTF / REVERSE / practice
摘要:#已知用户名:welcomebeijing,要我们查密码。运行看看:  ###有头目但不多 ##这道题目是反编译的一
阅读全文
摘要:很有意思的一道题目,找邮箱 查壳 明显的压缩包,提取: .apk,好文件。jadx找呗: 进来,一堆包我们该找啥呢?还记得题目吗?--> 找邮箱直接sou 很明显(为啥很明显~(哥们英语不是很好吧)!~咳咳,简单来说这是一些验证程序emmm这么去理解好像比较好点)这玩意不是。往下 依旧没有,好吧我承
阅读全文
摘要:#查壳  ##64位下的ubuntu程序可以跑也可以进IDA(因为是练习,就不跑了,有兴趣的小伙伴可以跑跑) ##
阅读全文
摘要:#得到一个c++的源文件:进VSCODE也行,devc++也行IDA也行: ###得到一个方程组,解开就行,大力推荐手搓(增加数学的能力到了)~~(我不用)~~典型的z3,上脚本: s = Solver() v, w, x, y, z = Ints('v w x y z') s.add(v * 23
阅读全文
摘要:#题目告诉我们要走迷宫了嘛,那么主要就是找地图: #查壳: ##64位,进IDA: ###创建地图?跟进去看看: ###看看num里装了啥: ###emm挺长的,有能力的小伙伴可以手搓一个地图,反正我没手搓出来QWQ ###再看看判断,说是走54步,且check满足,那么先动调拿到地图吧,上步骤:
阅读全文
摘要:#查壳: ##32位,进IDA: ###发现进不了思维图那,且看到了爆红点: ###什么办法,没办法,nop掉呗,这里注意,不是全部nop掉,(这里只用nop掉一个): ###这里+1,那么我门只nop第一个就好: ###选中jmp那段内容,ctrl + alt + k: ###点patch,就行,
阅读全文
摘要:#查壳: ##64位,没什么信息,进IDA: ###能看到有三个加密,都通过的话就是正确的flag,也给了我们最后的密文"EmBmP5Pmn7QcPU4gLYKv5QcMmB3PWHcP5YkPq3=cT6QckkPckoRG" ###由于我们是要返回flag那么我倒回去看加密,先看encode_t
阅读全文
摘要:#(这道题不难,就是费眼睛) #查壳: ##发现是js写的一个文件,(64位处理)进IDA: ###转成字符串后会有一堆东西,看不懂吧,我也看不懂(主打还是一个懒)你把他们全转化了也可以看懂,这里鼓励你,我直接把它扔进VSC里(支持任何语言(yyds)): ###没IDA的复杂,找呗: ####异或
阅读全文
摘要:#查壳: ##熟悉的配方,解包,反编译吧:进入.py文件: ###题目是走迷宫,进去后也发现了地图,那么我们将它打印出来: ####得到这么一张地图,那么看看起点和终点,起点:第一行第二个,终点:最后一行倒数第二个。画地图咯: ###得到Des = 'sssssddssddssaaaassssddw
阅读全文
摘要:#查壳: (后来发现:但凡有这玩意的都和解包有关) ##32位,运行,发现让我们输入一个key,进IDA: ###把能找的都找了,愣是没发现什么,除了一个类似base64的编码,实在没办法,去看了大佬的文章,说是py下的exe的解包,跟据大佬们的思路来了一波,果然出来了。 ###开始吧,首先是将该运
阅读全文
摘要:#查壳: ##64位,操作系统是ubantu的,可能会有所不同稍加留意一下,进IDA: ###依旧是比较题,我们先看看s2里的内容:‘TlNTQ1RGe2Jhc2VfNjRfTlRXUTRaR0ROQzdOfQ==’ ###目标是v3,看看v3调用的函数sub_124C: ####base64?看看
阅读全文
摘要:#查壳: ##64位,进IDA: ###好家伙,不给看伪代码,来吧汇编走起: ####设置两个段,一个数据段(dseg),一个额外段(seg001)看看吧,dseg段中的内容'hgame{Fill_in_your_flag}' ####seg001段中的内容:(不想说话) ####关键: ####逐
阅读全文
摘要:查壳: 发现里边有个压缩包,弄出来看看: 再查壳看看: 啥也不是,把它扔进IDA: 没有伪代码,一个字‘找’,关键点(是否IDA能成功反编译,还是说用了java的反编译才行,是否有flag或者CTF之类的字样): 发现特殊字样,跟进: 大写String?大胆点进jadx: 成功,告诉我们什么?要大胆
阅读全文
摘要:#查壳: ##发现是一个.pyc的文件,有啥好说的吗?直接 uncompyle6 咯得到.py文件: ###双击进入: ###有些人会因为from那行出错,应该是没装包,可以cmd,然后pip install pycryptodome ####大概就是将,从password.txt中读出一串密码 #
阅读全文
摘要:#查壳: ##64位,进IDA: ###看正确输出: ####有要比较的两个字符a5mc58bphliax7j和Buf1,可以知道目的字符串是a5mc58bphliax7j,跟进看看: ####再看看Buf1,可以看见它是根据我们输入的字符进行sub_401570方法后得到的,那么我们跟进: ###
阅读全文
摘要:#查壳: ##双击吧: ###简单的逻辑,不要怕那个循环,也不要去纠结那个循环。 ####首先看我们要找的是啥:b1嘛,也就是将flag每个字符转化成十进制后,再转成二进制,一个字符的二进制接后一个字符的二进制链接而成的字符串,再将这串字符串转为十进制。也就是b1 ####由除法原则我们知道,要想还
阅读全文
摘要:#查壳: ##有壳,32位,先脱再进IDA: ####上来就给答案:得到NSSCTF{Just_upx_-d}{Just_upx_-d}
阅读全文
摘要:#查壳: ##64位,进IDA: ###进来后发现c++经常用的std,(当然用c++的也有可能不经常见),跟进伪代码,找输出: ####有个判断跟进Human::~Human看看: ####调用了一个方法,字符串又指向了name,跟进方法:off_4863D0: ####发现存了一个基地址:跟进基
阅读全文
摘要:#查壳: ##64位:进IDA: ###进来就给flag:跟进: ###一堆东西,秉承着赶时间的优良作风,只看有用的输出: ###挺简单一个随机数问题,找种子就行: ####上脚本: int main(){ srand(10086); for (int i = 1; i <= 13; i++) {
阅读全文
摘要:查个壳: 没得东西:双击进去咯: 随机序列问题: 这里要提几点点: 一:同一个种子下获得的再次获得的随机数是相同的 怎么理解这个呢,上图理解: 能看到我们两次的随机数是完全一样的,但是如果不加random.seed(1)这一句或者将种子换了,就不一定会得到相同的数字了: 二:random.getra
阅读全文