第一次周报

文章详细介绍了通过使用逆向工程工具如IDAPro分析程序,查找并解密flag的过程,包括检查程序壳、反编译、理解代码逻辑。同时,文章也展示了如何利用Wireshark抓包工具解析网络流量,获取HTTP流中的关键信息,以及处理base64编码的数据来揭示隐藏的flag。
摘要由CSDN通过智能技术生成

Re

1、seayre

首先将程序拖动到die中查壳

发现无壳,并且是64位,拖动到64位的ida中进行反编译

f5反编译之后直接得到flag,没啥技术含量

或者可以解读一下程序,程序的结构是输入两个数,若两个数相同则输出flag,运行输出即可

2、reverse1

查壳,拖入die

无壳,64位,拖入到ida中f5反编译,然后找到main函数

开始分首先sub_1400111D1函数肯定是printf函数

strncmp(str1,str2,v3)是把str1与str2两字符串的前v3位数做一个比较,若str1=str2,返回0;大于返回正数,小于返回负数

if(!strncmp(str1,str2,v3))是一个判断语句,if()括号里面的内容如果为真,则输出"this is the right flag"

因为含有!的符号,所以如果str1=str2的时候,strncmp(str1,str2,v3)的值为0,则!strncmp(str1,str2,v3)的函数值就是1,即为输出"this is the right flag"

再看输入语句,输入的是str1,但是str2没有,可能是函数内部含有的

双击str2,查看一下

得到了一串字符串{hello_world},但是这并不是最终答案继续往上分析函数

有一个if语句,我们可以看到str2中ascll码为111的变成了48,我们可以选中数字按R键变成字符,方便查看

所以我们把‘o’变回‘0’得到原来的flag

3、reverse2

拖入die查壳

无壳,64位,拖入64位ida中,f5反编译

直接看for循环,发现对flag进行了替换,吧ascll码105和114换成了49

双击查看&flag的地址得到一串字符“hacking_for_fun”

再根据替换的规则,‘i’和‘r’换成‘1’

hack1ng_fo1_fun

4、内涵的软件1

die查壳

无壳,32位,拖32位ida,f5反编译找到main函数

DBAPP{49d3c93df25caad81232130f3d2ebfad}

吧DBAPP换成flag试试,结果还真成功了........这题啥情况

5、新年快乐

拖入die查壳

拖到kali中脱壳

脱壳后再拖入32位ida中反编译

找到字符串HappyNewYear!加上flag{}即可

6、xor

一看到xor就知道到这题跟异或脱不了关系,die查壳

无壳,64位

分析程序,这个程序的工作流程是先输入flag,然后然后让flag与他的上一位进行异或计算

再然后与global进行对比,如果相同则正确

所以正确的数据存储在global中,所以找到 __data:_global存储的数据

key=['f',0xA,'k',0xC,'w','&','O','.','@',0x11,'x',0xD,'Z',';','U',0x11,'p',0x19,'F',0x1F,'v','"','M','#','D',0xE,'g',6,'h',0xF,'G','2','O' ]

为了方便写脚本再将它换成十六进制的形式

key= [0x00, 0x66, 0x0A, 0x6b, 0x0c, 0x77, 0x26, 0x4f, 0x2e, 0x40,

0x11, 0x78, 0x0d, 0x5a, 0x3b, 0x55, 0x11, 0x70, 0x19, 0x46,

0x1f, 0x76, 0x22, 0x4d, 0x23, 0x44, 0x0e, 0x67, 0x06, 0x68,

0x0f, 0x47, 0x32, 0x4f]

然后写一个与前一位异或的脚本,脚本如下:

key = [0x00, 0x66, 0x0A, 0x6b, 0x0c, 0x77, 0x26, 0x4f, 0x2e, 0x40,

0x11, 0x78, 0x0d, 0x5a, 0x3b, 0x55, 0x11, 0x70, 0x19, 0x46,

0x1f, 0x76, 0x22, 0x4d, 0x23, 0x44, 0x0e, 0x67, 0x06, 0x68,

0x0f, 0x47, 0x32, 0x4f]

flag = ""

for i in range(1, len(key)):

flag += chr(key[i] ^ key[i-1])

print(flag)

7、helloword

一看是apk文件,则使用jadx打开

在源代码找到main函数,然后找到flag

8、reverse2

拖到die中查壳

无壳,32位,拖入ida反编译一下,找到main函数

shift+f12查看一下字符串,发现有base64的码表,所以可以初步判断是经过base64加密的

再看加密算法

关键语句 Destination[j] += j;

可以看出来每一位的ascll码都加了一个j(位数),写脚本反过来就好,前提是先找到字符串

是拿destination和str2进行比较,所以查看一下str2的字符串,得到了'e3nifIH9b_C@n@dH'

先写脚本减去位数

脚本:

s = "e3nifIH9b_C@n@dH"

x = ""

for i in range(0,len(s)):

x += chr(ord(s[i]) - i)

print(x)

得到结果字符串‘e2lfbDB2ZV95b3V9’这里是正常的码表,送去base64解密一下

得到flag

misc

1、wireshark

先用wireshark打开流量包

然后题目说是登陆网站的流量包,上传的是登录的信息,所以搜索http.request.method==POST找到一个包

右击追踪tcp流

从而找到关键信息

email=flag&password=ffb7567a1d4f4abdffdb54e022f8facd&captcha=BYUG

得到flag{ffb7567a1d4f4abdffdb54e022f8facd}

2、被嗅探到的流量

用wireshark工具打开

找到一个包含jpg图片的数据包

右击tcp流跟踪一下,最底下找到flag

3、数据包中的线索

wireshark打开

根据题目中说‘在线交流’所以可以判定为http的数据包,然后过滤一下http的数据包

追踪该数据包的http流,由开头”/9j/”,可知以下数据为jpg图片,“/9j/”经base64解码后结果为“\xff \xd8 \xff”,该三字节为jpg文件的开头三字节,所以可推断出以下文件为jpg文件。

然后使用base64编码解密成图片的网站或者用格式输入data:image/jpg;base64,编码

网站https://www.wenyiso.com/tool/base642image/

然后解密出照片得到flag

4、小明的保险箱

打开后是一张图片

根据题意可以发现内部一定还含有隐藏的文件,可以先把后缀名改成zip试试

改完之后发现是一个有密码的压缩包,根据提示是纯四位数字,暴力破解一下试试

得到密码7869

解压后得到txt文件,打开之后就是flag

5、认真你就输了

打开之后是一个损坏的xls文件,修改一下文件格式为zip试试

改完之后发现是一个压缩包,就解压之后查看一下文件

在chart文件夹下找到flag.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值