攻防世界-Reversing-x64Elf-100

news2024/9/30 21:32:48

Reversing-x64Elf-100

18最佳Writeup由 yuchouxuan 提供

收藏

反馈

难度:1

方向:Reverse

题解数:15

解出人数:2460

题目来源:

题目描述: 暂无

image-20230419215030320

image-20230419215303084

image-20230419220403402

image-20230419220505699

note:

undefined8 FUN_004006fd(long param_1)

{
  int local_2c;
  char *local_28 [4];
  
  local_28[0] = "Dufhbmf";
  local_28[1] = "pG`imos";
  local_28[2] = "ewUglpt";
  local_2c = 0;
  while( true ) {
    if (0xb < local_2c) {
      return 0;
    }
    if ((int)local_28[local_2c % 3][(local_2c / 3) * 2] - (int)*(char *)(param_1 + local_2c) != 1)
    break;
    local_2c = local_2c + 1;
  }
  return 1;
}



image-20230419220537936

image-20230419220434941

signed __int64 __fastcall sub_4006FD(__int64 a1)
{
  signed int i; // [rsp+14h] [rbp-24h]
  const char *v3; // [rsp+18h] [rbp-20h]
  const char *v4; // [rsp+20h] [rbp-18h]
  const char *v5; // [rsp+28h] [rbp-10h]

  v3 = "Dufhbmf";
  v4 = "pG`imos";
  v5 = "ewUglpt";
  for ( i = 0; i <= 11; ++i )
  {
    if ( (&v3)[i % 3][2 * (i / 3)] - *(char *)(i + a1) != 1 )
      return 1LL;
  }
  return 0LL;
}

*(char *)(i + a1) =(&v3)[i % 3][2 * (i / 3)]-1

CcmbPZ[dd\ig

DepfU`blmfts____________CdoeT_aklesr____________67 100 111 101 84 95 97 107 108

101 115 114

wrong try!

#include<stdio.h>


int sub_4006FD(void)
{
  signed int i; // [rsp+14h] [rbp-24h]
  const char *v3; // [rsp+18h] [rbp-20h]
  const char *v4; // [rsp+20h] [rbp-18h]
  const char *v5; // [rsp+28h] [rbp-10h]
//int a1;
  v3 = "Dufhbmf";
  v4 = "pG`imos";
  v5 = "ewUglpt";
  
  
  for ( i = 0; i <= 11; ++i )
  {
  	printf("%c",(&v3)[i % 3][2 * (i / 3)]);
//    if ( (&v3)[i % 3][2 * (i / 3)] - *(char *)(i + a1) != 1 )
//      return 1LL;
  }
  for ( i = 0; i <= 11; ++i )
      {
      	printf("%s","-");
    //    if ( (&v3)[i % 3][2 * (i / 3)] - *(char *)(i + a1) != 1 )
    //      return 1LL;
      }
    for ( i = 0; i <= 11; ++i )
    {
    	printf("%c",(&v3)[i % 3][2 * (i / 3)]-1);
  //    if ( (&v3)[i % 3][2 * (i / 3)] - *(char *)(i + a1) != 1 )
  //      return 1LL;
    }
      for ( i = 0; i <= 11; ++i )
	      {
	      	printf("-");
	    //    if ( (&v3)[i % 3][2 * (i / 3)] - *(char *)(i + a1) != 1 )
	    //      return 1LL;
	      }
        for ( i = 0; i <= 11; ++i )
	    {
	    	printf("%d ",(&v3)[i % 3][2 * (i / 3)]-1);
	  //    if ( (&v3)[i % 3][2 * (i / 3)] - *(char *)(i + a1) != 1 )
	  //      return 1LL;
	    }
	    
	    
	    
  return 0LL;
}

int main(void){
	sub_4006FD();
	return 0;
}

DepfU`blmfts------------CdoeT_aklesr------------67 100 111 101 84 95 97 107 108

101 115 114

Process exited after 0.07565 seconds with return value 0
请按任意键继续. . .

┌──(kwkl㉿kwkl)-[~/HODL/adworld]
└─$ ./43ba593623a7434fa5437cdd5c7862a1.re  
Enter the password: CcmbPZ[dd\ig
Incorrect password!
                                                                                                                                                                                 
┌──(kwkl㉿kwkl)-[~/HODL/adworld]
└─$ ./43ba593623a7434fa5437cdd5c7862a1.re                                                                                                                                    1 ⨯
Enter the password: Code_Talkers
Nice!
                                                                                                                                                                                 
┌──(kwkl㉿kwkl)-[~/HODL/adworld]
└─$ 

Final try!

#include<stdio.h>

int  FUN_004006fd( void)
{
  int local_2c,n,i;
   char *local_28 [4];
  int param_1[11]={99};
  local_28[0] = "Dufhbmf";
  local_28[1] = "pG`imos";
  local_28[2] = "ewUglpt";
  local_2c = 0;
  for ( local_2c = 0; local_2c <= 11; ++local_2c ) {

    for (n=0;n<222;n++){
    if (local_28[local_2c % 3][(local_2c / 3) * 2] - (n + local_2c) == 1)
    	param_1[local_2c]=n;
    	
    }
    local_2c = local_2c + 1;
  }
 		for ( i = 0; i <= 11; ++i ){
 			printf("%c",param_1[i]);
 		}
 		printf("\n------------------------\n");
		  		for ( i = 0; i <= 11; ++i ){
		  			printf("%c",local_28[i % 3][(i / 3) * 2]-1);
		  		}      
  return 1;
}


int sub_4006FD(void)
{
   int i,n; // [rsp+14h] [rbp-24h]
  const char *v3; // [rsp+18h] [rbp-20h]
  const char *v4; // [rsp+20h] [rbp-18h]
  const char *v5; // [rsp+28h] [rbp-10h]
//int a1;
  v3 = "Dufhbmf";
  v4 = "pG`imos";
  v5 = "ewUglpt";
  
  int a1[11]={1};
  
//  for ( i = 0; i <= 11; ++i )
//  {
//  	printf("%c",(&v3)[i % 3][2 * (i / 3)]);
    if ( (&v3)[i % 3][2 * (i / 3)] - *(char *)(i + a1) != 1 )
      return 1LL;
//  }
//
//
//
//	      	printf("\n------------------------\n");
//
//
//        for ( i = 0; i <= 11; ++i )
//	    {
//	    	printf("%c",(&v3)[i % 3][2 * (i / 3)]-1);
//
//	    }
	    printf("\n------------------------\n");
        for ( i = 0; i <= 11; ++i )
	    {
	    //	printf("%c",(&v3)[i % 3][2 * (i / 3)]-1);
	            for ( n = 0; n < 222; n++)
		
		        {
		
		            if ((&v3)[i % 3][2 * (i / 3)]- n == 1)
		
		                a1[i] = n;
		
		        }

	    }	
		for ( i = 0; i <= 11; ++i ){
			printf("%c",a1[i]);
		}   
		printf("\n------------------------\n");
	    
	    
  return 0LL;
}

int main(void){
	sub_4006FD();
	FUN_004006fd();
	return 0;
}



image-20230419234048774

Useful code:

int  FUN_004006fd( void)
{
  int local_2c,n,i;
   char *local_28 [4];
  int param_1[11]={99};
  local_28[0] = "Dufhbmf";
  local_28[1] = "pG`imos";
  local_28[2] = "ewUglpt";
  local_2c = 0;
  
 		printf("\n------------------------\n");
		  		for ( i = 0; i <= 11; ++i ){
		  			printf("%c",local_28[i % 3][(i / 3) * 2]-1);
		  		}      
  return 1;
}
  int local_2c,n,i;
   char *local_28 [4];
  int param_1[11]={99};
  local_28[0] = "Dufhbmf";
  local_28[1] = "pG`imos";
  local_28[2] = "ewUglpt";
  local_2c = 0;
  
 		printf("\n------------------------\n");
		  		for ( i = 0; i <= 11; ++i ){
		  			printf("%c",local_28[i % 3][(i / 3) * 2]-1);
		  		}  

https://www.freebuf.com/articles/network/327979.html算法分析丨Reversing-x64Elf-100逆向题

https://blog.csdn.net/czw2479/article/details/124996658

res = ""
word = ["Dufhbmf", "pG`imos", "ewUglpt"]
for i in range(12):
    res += chr(ord(word[i % 3][2 * (i // 3)]) - 1)
print(res)
 
"""output
Code_Talkers
"""


https://www.freebuf.com/articles/network/327979.html算法分析丨Reversing-x64Elf-100逆向题

res = “”
word = [“Dufhbmf”, “pG`imos”, “ewUglpt”]
for i in range(12):
res += chr(ord(word[i % 3][2 * (i // 3)]) - 1)
print(res)

“”“output
Code_Talkers
“””

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/437847.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设置环境变量

文章目录 window设置linux设置python设置 window设置 命令行设置 set 临时设置setx 永久设置 # 打开一个cmd命令行 set # 查看所有环境变量 set FLASK_APPsuperset # 临时设置&#xff0c;当前窗口有效 set FLASK_APP%FLASK_APP%;777 # # 查看 echo %FLASK_APP%# 永久设置…

1.18 从0开始学习Unity游戏开发--资源加载

在上一篇文章中&#xff0c;我们大约是开始接触到资源加载的事情了&#xff0c;场景资源则是一个比较特殊的资源&#xff0c;我们只要添加到Build Settings里面&#xff0c;那么我们就可以通过API直接加载。 但是其他类型的资源怎么办呢&#xff1f;比如我们制作一个网络游戏&…

为什么Spring和IDEA不推荐使用@Autowired注解?

在Spring开发中&#xff0c;Autowired注解是一个常用的依赖注入方式。但是&#xff0c;你可能会惊奇地发现&#xff0c;Spring和IDEA都不推荐使用Autowired注解。关于这个问题&#xff0c;其实答案相对统一&#xff0c;实际上用大白话说起来也容易理解。 官方答案 首先&#…

使用springboot解释什么是jwt

目录 使用springboot解释什么是jwt简介组成结构在springboot中的作用1. 添加依赖 在pom.xml文件中添加以下依赖2. 配置JWT 在Spring Boot的配置文件中配置JWT的相关参数&#xff0c;例如密钥、过期时间等&#xff1a;3. 创建JWT工具类 创建一个JWT工具类&#xff0c;用于生成和…

数据治理体系建设

01 数据治理建设路径 1. 业务数字化的目的是打造一体化的业务流、信息流与数据流 从企业整体经营管理的角度&#xff0c;战略制定及分解—领域业务目标制定—业务方案设计—业务需求识别 & 信息系统功能及数据库设计—数据汇聚及分析—业务目标监测及改善&#xff0c;这个…

Mysql安装详细教程

数据库相关概念 而目前主流的关系型数据库管理系统的市场占有率排名如下&#xff1a; Oracle&#xff1a;大型的收费数据库&#xff0c;Oracle公司产品&#xff0c;价格昂贵。 MySQL&#xff1a;开源免费的中小型数据库&#xff0c;后来Sun公司收购了MySQL&#xff0c;而Oracle…

PEIS体检管理系统源码,自主知识产权,文档齐全,功能完善

PEIS体检管理系统源码&#xff0c;自主知识产权&#xff0c;文档齐全&#xff0c;有演示。 体检条码化管理&#xff0c;体检数据比对&#xff0c;丰富的诊断模板&#xff0c;自动产生小结、综述和建议。 文末获取联系&#xff01; PEIS体检管理系统对医院体检中心进行系统化和…

java二维数组遍历

在 java中&#xff0c;二维数组是指在二维平面上的一个数组。在二维数组中&#xff0c;数据都是按行排序的。我们通常可以用“从上到下”、“从左到右”、“从后到前”等方法来遍历二维数组。由于二维数组中数据的有序性&#xff0c;我们可以在二维数组中快速地找到我们所需要的…

手机穿戴设备能力共享,提升丰富交互体验

HUAWEI Wear Engine面向手机和穿戴设备的应用与服务开发者&#xff0c;提供华为穿戴设备开放能力。 开发者通过调用Wear Engine开放能力&#xff0c;可以实现手机上的生态应用与服务给华为穿戴设备发消息、发通知、传输数据&#xff0c;并获取穿戴设备状态、读取传感器数据等&…

65W氮化镓(GaN)充电头PD快充方案

2023年数码圈中讨论较多的莫过于65W氮化镓&#xff08;GaN&#xff09;充电头。65W快充是目前快充市场出货的主流规格&#xff1b;氮化镓具有高可靠性&#xff0c;能够承受短时间过压&#xff1b;将GaN用于充电器的整流管后&#xff0c;能降低开关损耗和驱动损耗&#xff0c;提…

超清大屏沉浸音效,用极米H6 4K版看剧更有代入感

近日&#xff0c;由张译主演的悬疑剧《他是谁》开播&#xff0c;该剧主要讲述了以卫国平(张译饰)为首的刑警坚持不懈8年追凶&#xff0c;帮受害者讨回公道的故事。《狂飙》作为现象级爆款剧落幕不久&#xff0c;饰演刑警安欣的影帝张译&#xff0c;又在悬疑剧《他是谁》中主演刑…

本地套接字(domain)

本地套接字是一种特殊类型的套接字&#xff0c;和 TCP/UDP 套接字不同。TCP/UDP 即使在本地地址通信&#xff0c;也要走系统网络协议栈&#xff0c;而本地套接字&#xff0c;严格意义上说提供了一种单主机跨进程间调用的手段&#xff0c;减少了协议栈实现的复杂度&#xff0c;效…

consul集群搭建教程

简言 1. 使用consul单节点有宕机&#xff0c;数据丢失的风险&#xff0c;为了安全&#xff0c;使用consul集群更靠谱 2. consul的各个版本下载地址在 Consul Versions | HashiCorp Releases 3. 本文使用consul的版本是consul1.15.1&#xff0c;所以请下载名字为 consul_1.15…

数据密集型应用存储与检索设计

本文内容翻译自《数据密集型应用系统设计》&#xff0c;豆瓣评分高达 9.7 分。 什么是「数据密集型应用系统」&#xff1f; 当数据&#xff08;数据量、数据复杂度、数据变化速度&#xff09;是一个应用的主要挑战&#xff0c;那么可以把这个应用称为数据密集型的。与之相对的是…

免费文本转语音(在线文本转语音)

个人开发的网站&#xff0c;已经维护快一年了&#xff0c;接口稳定&#xff0c;基于微软官方接口&#xff0c;可在线生成&#xff0c;手机电脑平板通用。每天提供一定额度&#xff08;时而5000时而2000时而500&#xff0c;根据服务器压力调整&#xff09;的免费字数供大家使用。…

数画-AI绘画-免费的人工智能AI绘画网站

文章目录 AIGC什么是AI作画&#xff1f;Prompt数画AIGC的未来发展结语 AIGC AIGC&#xff08;AI Generated Content&#xff09;是指利用人工智能生成内容。是利用人工智能来生成你所需要的内容&#xff0c;GC的意思是创作内容。与之相对应的概念中&#xff0c;比较熟知的还有P…

瑞芯微RK3568对比RK3399性能解析

RK3568核心板简介 ​ RK3568核心板是武汉万象奥科基于瑞芯微Rockchip的RK3568设计的一款高性能核心板。它采用四核Cortex-A55架构&#xff0c;最高主频可达2.0GHz&#xff0c;同时集成Mali-G52 2EE GPU&#xff0c;支持4K60fps H.265/H.264/VP9解码和4K60fps H.265/H.264编码…

北大POJ 1000 ~ 1007

1. AB &#x1f351; POJ1000 ab &#x1f354; 签到题 import java.io.*; import java.util.*; public class Main {public static void main(String args[]) throws Exception{Scanner cinnew Scanner(System.in);int acin.nextInt(),bcin.nextInt();System.out.println(…

【Vue3】Vue项目各个配置文件的相关用途

通过Vue Cli创建好初始代码后&#xff0c;对于各个文件以及配置文件的用途&#xff0c;比较模糊。弄清楚配置文件的大致作用&#xff0c;十分有利于项目整体性的把控&#xff0c;在实际项目中例如修改配色、样式、统一页面结构等&#xff0c;都可以事半功倍。 1、package.json …

分享下这些软件外包公司(2023最新版),程序员有福了

金三银四已经过去一半&#xff0c;再过几个月又将迎来毕业季&#xff0c;大家有没有找到心仪的工作机会呀&#xff1f; 今年找工作的行情确实不行&#xff0c;在网上也能听见很多人在讨论说今年工作实在是太难找了。 如果实在找不到合适的工作&#xff0c;那外包也可以考虑下了…