【练习】reserving.kr之easy ELF

打开主函数:

int __cdecl main()
{
  int result; // eax@2

  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; // eax@2

  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

 

转载于:https://www.cnblogs.com/liuyimin/p/7637432.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值