首页
社区
课程
招聘
[原创] 看雪CTF.TSRC 2018 - 半加器
2018-12-3 14:29 2033

[原创] 看雪CTF.TSRC 2018 - 半加器

aqs 活跃值
5
2018-12-3 14:29
2033

给了一个 32bit 的 exe
搜索字符串 Input: 可以找到输入的地方,跟踪输入的字符串

mov     ecx, offset unk_5F6007
call    antisome
push    offset aPleaseInput ; "Please Input:"
push    offset unk_5F31E0
call    sub_48CD46
add     esp, 8
push    1Eh
push    offset input_str
push    offset aS       ; "%s"
call    readsome_48C0EE
add     esp, 0Ch
push    offset input_str
call    strlensome
add     esp, 4
mov     [ebp+var_8], eax
cmp     [ebp+var_8], 1Eh  // 长度  no greate than 0x1e
jg      short lenerror

可以看到长度<=0x1e, 否则输出错误信息

push    offset wrongmsg ; "输入错误;"
call    printsome
add     esp, 4
push    0
call    exitsome
jmp     short loc_4A1A7E

接下来做了一些字符串的拷贝, 判断 input[7]=='A', 不对又输出错误信息

push    offset input_str
push    1Eh
mov     eax, something2
push    eax
call    memcpysome_48E5BF
add     esp, 0Ch
mov     eax, 1
imul    ecx, eax, 7
mov     edx, something2
movsx   eax, byte ptr [edx+ecx]
cmp     eax, 'A'
jz      short norerror

后面 调用了一个 函数对输入的字符串进行变换, 具体是
input[7]='#'
然后每个byte 异或 0x1f

mov     eax, something2
push    eax
call    xor0x1f_48D3A4
add     esp, 4

后面ida解析有点问题,掉了一个不知道什么函数

xor     eax, eax
pop     edi
pop     esi
pop     ebx
add     esp, 0CCh
cmp     ebp, esp
call    sub_48D935
mov     esp, ebp
pop     ebp

直接看 something2 的引用,最后进入了一个函数

int __userpurge sub_49DC80@<eax>(int a1@<xmm0>, int a2)
{
  int v2; // edx
  int v3; // ecx
  unsigned int i; // [esp+E8h] [ebp-14h]

  antisome((int)&unk_5F6007);
  if ( a2 )
  {
    for ( i = 0; i < strlensome(a2); ++i )
      *(_BYTE *)(i + a2) ^= 0x1Cu;
    if ( !strcmpsome(a2, something2) )
    {
      sub_48B4AA(&unk_5F31E0, 111);
      sub_48B4AA(&unk_5F31E0, 107);
    }
  }
  return sub_48D935(v3, v2, 1, 0, a1);
}

看一下谁调用了这个函数可以知道 a2 = 'invalid argument'
所以具体就是

t=''
s='invalid argument'
for i in s:
    t+=chr(ord(i)^0x1c^0x1f)
print t
# jmubojg#bqdvnfmw

将 # 换成 # 即可


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞1
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回