[buuctf.reverse] 104_[FlareOn1]Shellolololol

动调,不然也没啥办法

主函数就是401000但是反编译不了,直接看下汇编,就是把一个个字节从401000开始写入栈,然后跳到401000处执行行,其实相当于一个shellcode

这块可以用程序导出来

void __usercall __noreturn sub_401000(unsigned int a1@<eax>, int a2@<edx>, unsigned int a3@<edi>)
{
  _DWORD *v3; // esi
  int i; // ecx
  int v5; // edx
  unsigned __int32 v6; // eax
  int v7; // [esp+4h] [ebp-204h]

  v3 = (_DWORD *)(v7 + 28);
  for ( i = 479; i; --i )
  {
    *(_BYTE *)v3 ^= 0x66u;
    v3 = (_DWORD *)((char *)v3 + 1);
  }
  v5 = *v3 + __CFADD__(MEMORY[0x150E6666], a2) + MEMORY[0x150E6666] + a2;
  __outdword(v5, a1);
  __indword(v5);
  v6 = __indword(0xA0u);
  __outdword(v5 + 1, v6);
  __outdword(0xA7u, a3);
  JUMPOUT(0xEF74C247);
}

然后从28开始再与0x66异或,其实这也没完后边还有,就比较乱了,所以改用od一步步跟,跟到差不多的时候可以看到flag,因为flare-on.com这个太过明显了,比较容易看到

such.5h311010101@flare-on.com
flag{such.5h311010101@flare-on.com}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值