攻防世界逆向高手题之APK-逆向2

99 篇文章 33 订阅

攻防世界逆向高手题之APK-逆向2

继续开启全栈梦想之逆向之旅~
这题是攻防世界逆向高手题的APK-逆向2
在这里插入图片描述

照例下载附件,这次竟然是个exe文件:
在这里插入图片描述

直接运行看一下主要回显信息,connecting了一会直接就退出了,根据经验可以判断是与本地环境相关:
在这里插入图片描述

照例放入exeinfope中查看文件类型:
在这里插入图片描述

NET类型以前做过,要用ILSPYdnSPY分析,ILSPY用来静态分析代码最好了,它的函数名虽然可能乱码不显示,但是单击函数名还是能跟踪的。而dnSPY用于动态调试的,它的函数名不仅乱码不显示,点击后还无法跟踪:(最好两个都下载,一个动态分析,一个静态分析)
在这里插入图片描述
在这里插入图片描述

所以总的流程梳理:
程序连接本机31337端口-------->比较text和文件内容相同时的索引--------------->该索引i*1337%256并左边2位对齐补0后即可输出flag。
.
.
所以flag只有程序运行起来就会显示,我们有两个做题方法,第一个直接开启并监听31337端口,第二个直接读取文件输出对应逻辑的i*1337%256。
.
.
第一种方法,使用python的http.server模块简单地实行HTTP servers服务:(为此我还简单学了一下http.server模块~)

import http.server

server_address = ('127.0.0.1', 31337)
handler_class = http.server.BaseHTTPRequestHandler
httpd = http.server.HTTPServer(server_address, handler_class)
httpd.serve_forever()

.
.

第二个更简单的直接nc -l -p 31337端口:
在这里插入图片描述
.
.
第三个直接读取文件后用同样逻辑正向输出即可,这里要注意exe文件中是unicode编码,所以读取出来时要用unicode-escape解码:

key1="Super Secret Key"
key2=open('1.exe','r',encoding = 'unicode-escape').read()			#新操作之文件字节码编码,exe文件中是unicode编码
num=len(key2)

flag="CTF{"

def search(x,key2,num):
	for i in range(num):
		if x==key2[i]:
			value=i * 1337 % 256;
			return '%02x' %value										#新操作之return直接返回print语句

for j in key1:
	flag+=search(j,key2,num)


flag+="}"
print(flag)

结果:
在这里插入图片描述
.
.
.
解毕!敬礼!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沐一 · 林

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值