练习reserving.kr之easy ELF
Posted liuyimin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了练习reserving.kr之easy ELF相关的知识,希望对你有一定的参考价值。
打开主函数:
int __cdecl main() { int result; // [email protected] write(1, "Reversing.Kr Easy ELF\n\n", 0x17u); sub_8048434(); if ( main_0() == 1 ) // 算法函数 { sub_80484F7(); // correct! result = 0; } else { write(1, "Wrong\n", 6u); result = 0; } return result; }
进入算法函数:
int sub_8048451() { int result; // [email protected] if ( byte_804A021 == 0x31 ) { byte_804A020 ^= 0x34u; byte_804A022 ^= 0x32u; byte_804A023 ^= 0x88u; if ( byte_804A024 == 0x58 ) { if ( byte_804A025 ) { result = 0; } else if ( byte_804A022 == 0x7C ) { if ( byte_804A020 == 0x78 ) result = byte_804A023 == 0xDDu; else
分析flag的泄露地址,写出exp如下:
flag=‘‘ flag+=chr(0x78^0x34) flag+=‘1‘ flag+=chr(0x7c^0x32) flag+=chr(0xdd^0x88) flag+=‘X‘ print flag
flag为L1NUX
以上是关于练习reserving.kr之easy ELF的主要内容,如果未能解决你的问题,请参考以下文章
reversebuu-[Zer0pts2020]easy_strcmp——main函数的启动过程+IDA动态调试ELF
reversebuu-[Zer0pts2020]easy_strcmp——main函数的启动过程+IDA动态调试ELF
ucore lab1 练习4—bootloader加载ELF格式OS