首页
社区
课程
招聘
[求助] 一道完全没思路的题
2019-11-18 06:22 6728

[求助] 一道完全没思路的题

2019-11-18 06:22
6728

这道题据说应该和ROP有关系, 但萌新如我完全没有任何思路,想问问大家有没有什么思路. 保护的话是

    Arch:     i386-32-little
    RELRO:    No RELRO
    Stack:    Canary found
    NX:       NX enabled
    PIE:      PIE enabled

反编译之后的代码如下

int __cdecl main(int argc, const char **argv, const char **envp)
{
  int result; // eax
  int v4; // ebx
  char ptr[1600]; // [esp+4h] [ebp-1648h]
  int v6[1024]; // [esp+644h] [ebp-1008h]
  unsigned int v7; // [esp+1644h] [ebp-8h]

  v7 = __readgsdword(0x14u);
  if ( argv[1] )
  {
    printf("Service id is: %p\n", v6);
    for ( a_index = 0; a_index <= 1023; ++a_index )
    {
      v4 = a_index;
      v6[v4] = get_int();
    }
    fread(ptr, 1u, 0x190u, stdin);
    syscall(15);
    result = 0;
  }
  else
  {
    fwrite("Missing flag file\n", 1u, 0x12u, edata);
    result = 1;
  }
  return result;
}
int get_int()
{
  char s[1024]; // [esp+4h] [ebp-404h]
  unsigned int v2; // [esp+404h] [ebp-4h]

  v2 = __readgsdword(0x14u);
  fgets(s, 1024, stdin);
  return strtol(s, 0, 0);
}

因为我感觉两个数组都溢出不了,所以完全不知道还有什么方法可以影响这个程序的运行.
谢谢大家了!


[培训]《安卓高级研修班(网课)》月薪三万计划,掌 握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞0
打赏
分享
最新回复 (4)
雪    币: 1567
活跃值: (905)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
sYstemk1t 2019-11-18 06:30
2
0
https://xz.aliyun.com/t/4384
大佬看看这个对你有没有帮助
雪    币: 12129
活跃值: (15560)
能力值: ( LV12,RANK:240 )
在线值:
发帖
回帖
粉丝
pureGavin 2 2019-11-18 10:26
3
0
拿到题之后尝试输入特别长的数据,或者是特殊字符串(比如:%p)之类的,这题不太想堆题
雪    币: 44
活跃值: (56)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
潇洒蛋 2019-12-15 22:14
4
0
可以把附件发上来吗
雪    币: 5929
活跃值: (1661)
能力值: ( LV7,RANK:150 )
在线值:
发帖
回帖
粉丝
二当家a 2 2019-12-16 16:44
5
0
直观看,貌似溢出的空间够的。char s[1024]; // [esp+4h] [ebp-404h] 溢出点s距离ebp是0x404字节。但是这个不一定准。需要绕过canary, 结合gdb调试
游客
登录 | 注册 方可回帖
返回