初次记录WP,不足之处欢迎提出宝贵意见!
0x01 分析文件类型
64位ELF可执行文件
0x02 尝试Kail运行文件
发现其权限不够 ,使用ls -alh查看文件权限,只有属主读取、写入权限。
知识点拓展:
1、设置权限属性后的效果
权限属性 | 文件 |
---|---|
r | 允许打开并读取文件 |
w | 允许写入或截断文件 |
x | 允许将该文件作为程序执行 |
2、修改文件权限
chmod—修改文件模式
操作文件或目录的用户,有3种不同类型:文件所有者、群组用户、其他用户。最高位表示文件所有者的权限值,中间位表示群组用户的权限值,最低位则表示其他用户的权限值,所以,chmod 777中,三个数字7分别对应上面三种用户,权限值都为7。
Why 7?
因为chmod支持两种表示方式:
- 八进制表示法
- 符号表示法
八进制法中,每个八进制数位可以描述3个二进制位,这正好和文件模式的记录方式相对应。
八进制形式 | 二进制形式 | 文件模式 |
---|---|---|
7 | 111 | rwx |
END
可以看到luck_guy文件只有属主读写权限,没有可执行文件权限。
用chmod 777 ./luck_guy 修改文件权限
可看到一些关键字信息,然后拖到IDA中进行分析。
0x03 直接拖入IDA64,查找string字符串
发现flag关键词,双击进入。
发现get_flag函数,定位到loc_400B45,双击进入,可看到该函数流程框架图,按F5还原伪代码。
unsigned __int64 get_flag()
{
unsigned int v0; // eax
char v1; // al
signed int i; // [rsp+4h] [rbp-3Ch]
signed int j; // [rsp+8h] [rbp-38h]
__int64 s; // [rsp+10h] [rbp-30h]
char v6