[HNCTF 2022 WEEK2]Try2Bebug_Plus 使用IDA 远程调试Linux文件

[HNCTF 2022 WEEK2]Try2Bebug_Plus为例

下载程序,发现是一个Linux程序,分析一下源码

int __fastcall main(int argc, const char **argv, const char **envp)
{
  int i; // [rsp+Ch] [rbp-4h]

  for ( i = 0; i <= 11; i += 2 )
  {
    argv = (const char **)&k;
    decrypt((char *)&v + 4 * i, &k);
  }
  puts("waiting and i will give you flag!");
  sleep(0x2710u);
  function(&v, argv);
  printf("sorry! something wrong!");
  printf("please find the flag by Debug!");
  return 0;
}
unsigned __int64 __fastcall function(__int64 a1)
{
  int i; // [rsp+1Ch] [rbp-24h]
  _BYTE v3[12]; // [rsp+2Ch] [rbp-14h] BYREF
  unsigned __int64 v4; // [rsp+38h] [rbp-8h]

  v4 = __readfsqword(0x28u);
  for ( i = 0; i <= 11; ++i )
    v3[i] = (16 * i) ^ *(_BYTE *)(4LL * i + a1);
  printf("flag is %%s\n");
  puts("sorry!!! I forget where is flag ");
  return v4 - __readfsqword(0x28u);
}

注意到,程序将最终的flag保存到了v3 中,所以我们目前需要做两件事

  1. sleep(0x2710u);打断点,修改sleep时间
  2. 在printf处打断点,得到v3的值

由于这是一个Linux程序,我所有的是Windows的IDA,没法对其调试,所以需要进行远程调试

在IDA文件夹内找到

dbgsrv\linux_server

把它复制到Linux虚拟机中,然后

chmod +x linux_server
./linux_server

IDA Linux 64-bit remote debug server(ST) v9.0.30. Hex-Rays (c) 2004-2024
2025-11-16 01:56:46 Listening on 0.0.0.0:23946 (my ip 192.168.130.122)...

再把需要调试的elf文件上传到Linux虚拟机

然后在IDA的debugger 选择remote Linux debugger

根据对应的文件地址和ip填写,我这里是

/home/kali/a/elf 填写Linux虚拟机中文件的位置
/home/kali/a/    填写Linux虚拟机中文件目录的位置
...              中间部分不用管
<ip>  <port>     填写刚刚显示的ip和port
<passwd>         填写Linux虚拟机的密码

然后就可以连接上虚拟机,运行就可以调试

.text:0000555555555466 mov     edi, 2710h
.text:000055555555546B call    sub_5555555550B0

sub_5555555550B0sleep函数,在call打断点,然后把RDI改成一1就行

    a2 = (unsigned int)(16 * i) ^ *(_DWORD *)(4LL * i + a1);
    v5[i] = (16 * i) ^ *(_BYTE *)(4LL * i + a1);
  }
  sub_5555555550A0("flag is %%s\n");
  sub_555555555080("sorry!!! I forget where is flag ", a2, v2);

程序停在了sub_5555555550A0 此时就可以查看v5的值

[stack]:00007FFFFFFFDF8C db  74h ; t
[stack]:00007FFFFFFFDF8D db  68h ; h
[stack]:00007FFFFFFFDF8E db  31h ; 1
[stack]:00007FFFFFFFDF8F db  73h ; s
[stack]:00007FFFFFFFDF90 db  5Fh ; _
[stack]:00007FFFFFFFDF91 db  31h ; 1
[stack]:00007FFFFFFFDF92 db  73h ; s
[stack]:00007FFFFFFFDF93 db  5Fh ; _
[stack]:00007FFFFFFFDF94 db  66h ; f
[stack]:00007FFFFFFFDF95 db  6Ch ; l
[stack]:00007FFFFFFFDF96 db  61h ; a
[stack]:00007FFFFFFFDF97 db  67h ; g
posted @ 2025-11-16 15:21  Nacocx  阅读(0)  评论(0)    收藏  举报