攻防世界—刷题(2)

一.流浪者

1.查壳

无壳,32位。

2.IDA反编译。

shift+f12查看字符串。找到pass!(通过)跟进。

找到关键函数(猜的) :逻辑简单:写exp发现结果是乱码,前面应该是还有加密。

快捷键x找到调用位置,这才是主函数。

 分析代码:逻辑:先判断是小写字母,大写字母或数字并分别进行减法操作,然后在以加密后的值为下标检索aAbcdefghiabcde中的值然后与”KanXueCTF2019JustForhappy“比较。

3.exp

 4.get flag

flag{j0rXI4bTeustBiIGHeCF70DDM} 

二.SignIn

1.查壳

无壳,64位。

2.IDA反编译。

 关键函数为:sub_96A,_gmpz_powm.

_gmpz_powm不知道是什么,问了一下度娘了解到这是一个 GNU 高精度算法库.

_gmpz_str:将 字符数组(中间的变量)以 指定的进制( 末位的数)解读成数值并写入 v7 所指向的内存

_gmpz_cmp:比较

_gmpz_powm:计算 第二个v6的 v5 次方,并对 v4 取模,最后将结果写入 第一个v6 中(相当于RSA加密)

sub_96A:

逻辑:把v8的每一个字符转化为16进制并拼接。

3.exp

4.get flag

suctf{Pwn_@_hundred_years} 

三.easy_Maze

1.查壳

无壳,64位,elf文件。通过题目可知是迷宫题。

2.IDA反编译。

Step_2:

 在主函数中迷宫做过变换。通过动调(远程调试)可以得到变换后的迷宫。

IDA远程调试(elf文件)设置_aiQG_的博客-优快云博客_ida远程调试

分析Step_2:

迷宫为7*7方阵

w:上,s:下,a:左,d,右,起始位置在(0,0),末位置在(6,6),只能走1.

3.get flag

UNCTF{ssddwdwdddssaasasaaassddddwdds} 

四.easyRE1

1.查壳

无壳,64位(还有一个32位的,和这个一样。看一个就行)

2.IDA反编译,shift+f12查找字符串。

直接就得到flag:flag{db2f62a36a018bce28e46d976e3f9864}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值