[NSSRound#V Team]Shatter_Time

 string中找关键,没发现

int __cdecl _matherr(struct _exception *Except)
{
  const char *v1; // ecx c的回调函数,当数学函数
                  //     (sqrt,log等)出错,被调用来处理
  unsigned int v2; // edx

  v1 = "Unknown error";
  v2 = Except->type - 1;
  if ( v2 <= 5 )
    v1 = CSWTCH_5[v2];
  fprintf(
    &__iob[2],
    "_matherr(): %s in %s(%g, %g)  (retval=%g)\n",
    v1,
    Except->name,
    Except->arg1,                               // 结构体中信息
    Except->arg2,
    Except->retval);
  return 0;
}

动调试试,应该有个随机数和一个定值比较

有个显示中文字符的操作

options-->general-->strings,双击utf-8,右键insert输入gbk,选中要修复字符串,按alt+a,选C-style

前面提交不对,发现一个main2函数

写不出来,发现有好几个mainx函数

应该是随机数的生成。

所以需要爆破求出x

aa=[166, 419, 182, 458, 242, 36, 346, 161, 494, 330, 176, 32, 410, 287, 174, 71, 494, 412, 340, 278, 226, 184, 152, 130, 118, 116, 124, 142, 170, 208, 256, 314, 382, 460, 14, 111, 218, 335, 462, 60, 206, 362, 528, 161, 346, 541, 200, 414, 90, 323]
print(aa)
# for i in range(500,550,1):
#     for x in range(0xffffffff):
#       if x%i==aa[i-500]:
#         print(x)
#         break
for x in range(0xffffffff):
  flag=1
  for i in range(500,550,1):
    if x%i!=aa[i-500]:
      flag=0
      break
  if flag==1:
    print(x)
# 1376666

再进入main2,

 

随机数 v1 = clock();printf(&aD, v1);在此修改

eax存放随机数,修改eax运行

得到flag。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值