吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 476|回复: 1
收起左侧

[讨论] buu ctf reverse 正在写

[复制链接]
chenchenchen777 发表于 2022-11-30 16:47
BUUCTF新年快乐将文件直接放入PEID中去分析,发现是有shell的exe(upx)所以要进行去shell的处理打开文件之后就是一个明文加密了,直接得到flag不一样的flag解密地图可以看到最后是要    一个地址的数字成为‘#’之后才能得到flag因为题目提示了,不要用正常的逆向方法去解题那就试试别的分析代码,发现只有v3==*11110100001010000101111#可以利用,那我们应该怎么办?得到#,那么不就是得到字符串的最后一位嘛选择方向去执行上下左右这就是走迷宫嘛上面的数据按照5*5的规格去展示我们在*的位置,要到#的位置-----》得到flagflag{222441144222}Simple rev 无shell的程序main函数:看出输入'Q''D''q''d'会让程序退出点开Decry函数
看到了我们的主要函数了看这里可以得到text==killswodahkey=ADSFKSLCDN
我们最终是要str2==text所以要看程序的加密过程了这里就将原来的字符大小增大32(ascll值)所以其实也就是将原来的key的大写全部转为小写
分析下面的程序:结合ascll表大概的意思就是输入字符假如这个字符是大写或者小写字母就会进行一个str2[v2] = (v1 - 39 - key[v3 % v5] + 97) % 26 + 97的加密操作操作之后的结果是将值赋给str2这个字符串
可以知道text的值是一个10个字节大小的字符串所以我们的str2也会是一个10字节大小的字符串
我们要怎么去找这个字符串加密之后的字符串和text相等呢???我们只能进行十次的遍历整个大小写的字母表然后挨个的去和text的每一位进行比对
脚本就可以这样写先进行十个字符的循环遍历先判断是不是大小写字母然后进行加密假如加密之后的字符等于text中的text就直接将现在的字符记录下来然后进行打印(flag可以在左下角看到)flag{KLDQCOZFDU}

xor程序的主要意思是将原本的数据后一个数据异或上前一个数据直接脚本Shift +e 可以提前字符串的十六进制
  • luck_guy:
直接放到IDA64中去分析走到我们的主要函数里面去get_flag:这里我们可以看到是通过随机出数据来进行取余操作来进行不同的代码操作(这里要科普一波生成随机数,用rand函数生成的随机数都是伪随机的数据,也就是说虽然是生成的随机数,但是早就有规律,可以通过一定的方式求出)所以其实这个的进行不同的操作肯定是确定的操作来一步一步的进行的所以我们只能分析代码Case 1中可以得到   f1的值是多少但是 f2是没有赋值的,所以case1 肯定要在f2赋值之后进行case2,case3是师傅的bb话没用再看case4  是f2的赋值所以呢  case4肯定要在case1前面case5  是对于f2的加密所以肯定是在case4的前面    总的逻辑:1.进行f2的赋值   2.进行f2的加密   3.进行s的追加所以我们可以直接写脚本了(注意:这里s的赋值是小端对齐,也就是低数据位对应的低地址,所以我们要将字符串从小端改为大端对齐)s=icug'ofF7x\脚本flag{do_not_hate_me}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Hmily 发表于 2022-11-30 17:37
这个如果是分享内容应该放到脱壳破解区的ctf分类中。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-26 12:22

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表