pwnable.kr第二遍--flag

>>>>>flag
1.UPX命令
通用可执行文件压缩器
压缩里搞;解压速度快....
控制台应用程序,以命令行的方式进行操作,使用简单
upx [-1d...] [-qvfk] [-o file] file..
解压缩文件
upx -d flag -o flag_upx


2.xxd flag|tail
xxd用于将文件以二进制或者十六进制的形式输出
tail用于输入文件中获得尾部;默认十行


3.wine
进入https://wiki.winehq.org/Download
并按照教程一步步安装就好了
然后再命令行中'wine'会给出usage
然后直接执行'wine ida64.exe'
执行过程中提到有的安装包没有安装
点击安装就可以了


4.IDA查看string
f12或者view--->sub-view--->String


5.linux运行IDA-pro
网上说吾爱破解论坛中有提供IDA-pro的linux版本
我这次直接使用的是windows版本的Exe文件
所以就学着在linux下安装wine,在wine中运行exe简直很爽了


6.ELF
Executable and Linking Format:可执行可连接格式
relocatable 可重定向文件
executable  可执行文件
shared object 共享目标文件




7.怎么知道他是UPX压缩文件
xxd flag | tail
upx压缩标志(二进制文件中有UPX字段)


8.解题思路
此题目比较简单,主要是工具的使用
>首先下载flag文件,利用'file flag'命令查看文件格式
ELF 64bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, stripped, with debug_info
>使用xxd flag | tail命令
可以发现有明显的UPX标记字段,说明文件是UPX压缩的
>使用UPX -d flag -o flag_upx解压缩文件
注意这里需要upx命令工具,首先安装
>将解压缩后的flag_upx在IDA中解析
可以看到明显的flag标记
追踪到string-view,可以看到完整的flag字符串的内容


9.stripped
strip工具
.out文件和elf文件都有符号表,包括所有的符号(程序的入口地址和变量额地址等等)
这些符号表可以用Strip工具剔除
elf文件的符号表在加载时起到关键作用,所以不可能完全stripped
而.out文件可以完全剔除


Stripped和not stripped的区别:
stripped:将程序中的符号表的信息剔除掉了,编译出来的可执行文件体积比较小
not stripped:保留了这些信息,所以便于调试


10.statically linked && dynamically linked
静态链接:可移植性好;文件大;调用函数在内存中多次存放
动态链接:可移植性差;文件小;多个程序可以共享内存中加载的库函数


11.在有些地方可以看到flag的部分信息,后边是'...'
表示该信息并不完整,所以还需要到string-window中去查看


12.其他的压缩文件都可以这样吗?
还是有相应的标识字段不一样


13.为什么不可执行??权限不够??
下载之后无法执行
输入'ls -l'查看flag和flag_upx(flag解压缩之后文件)
发现权限不足
使用chmod 777 flag/flag_upx
可以执行文件'./flag' './flag_upx'


UPX只能用来压缩可执行文件,可以认为是给可执行文件加壳了
压缩后的exe文件是可执行的


14.Windows上大部分可执行文件为PE格式
Linux里大部分可执行文件为ELF格式


15.with debug_info
是指改可执行文件支持debug调试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值