# 逆向神器:Ghidra简介及使用方法

2023-10-29

逆向神器:Ghidra简介及使用方法

image-20230709181455065

https://github.com/NationalSecurityAgency/ghidra

jdk

https://adoptium.net/zh-CN/temurin/releases/

 binwalk '/home/giantbranch/Desktop/RE_Cirno.jpg' 

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             JPEG image data, JFIF standard 1.01
10764         0x2A0C          Zip archive data, at least v2.0 to extract, compressed size: 35016, uncompressed size: 172091, name: re.exe
45904         0xB350          End of Zip archive


binwalk -Me '/home/giantbranch/Desktop/RE_Cirno.jpg' 

Scan Time:     2023-07-09 07:35:21
Target File:   /home/giantbranch/Desktop/RE_Cirno.jpg
MD5 Checksum:  5ad8668b8bcd9ad5b9e0944063aa4d33
Signatures:    344

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             JPEG image data, JFIF standard 1.01
10764         0x2A0C          Zip archive data, at least v2.0 to extract, compressed size: 35016, uncompressed size: 172091, name: re.exe
45904         0xB350          End of Zip archive


Scan Time:     2023-07-09 07:35:21
Target File:   /home/giantbranch/_RE_Cirno.jpg.extracted/re.exe
MD5 Checksum:  6df009ab420867a9248befca5f829bb3
Signatures:    344

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             Microsoft executable, portable (PE)



giantbranch@ubuntu:~/_RE_Cirno.jpg.extracted$ binwalk '/home/giantbranch/Desktop/RE_Cirno.jpg' 

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             JPEG image data, JFIF standard 1.01
10764         0x2A0C          Zip archive data, at least v2.0 to extract, compressed size: 35016, uncompressed size: 172091, name: re.exe
45904         0xB350          End of Zip archive

giantbranch@ubuntu:~/_RE_Cirno.jpg.extracted$ 


image-20230716170300478

use ghidra!

image-20230716170744698

image-20230716170759303

image-20230716170849525

image-20230716171104005

image-20230716171120544

image-20230716171149550

void FUN_0040f350(void)

{
  int iVar1;
  undefined4 *puVar2;
  undefined4 local_b0 [16];
  uint local_70;
  uint local_6c;
  int local_68;
  int local_64 [24];
  
  puVar2 = local_b0;
  for (iVar1 = 0x2b; iVar1 != 0; iVar1 = iVar1 + -1) {
    *puVar2 = 0xcccccccc;
    puVar2 = puVar2 + 1;
  }
  local_64[0] = 0x73;
  local_64[1] = 0x5e;
  local_64[2] = 0x61;
  local_64[3] = 0x72;
  local_64[4] = 0x67;
  local_64[5] = 0x2f;
  local_64[6] = 0x6b;
  local_64[7] = 0x72;
  local_64[8] = 0x41;
  local_64[9] = 0x30;
  local_64[10] = 0x31;
  local_64[11] = 0x69;
  local_64[12] = 0x75;
  local_64[13] = 0x76;
  local_64[14] = 0x65;
  local_64[15] = 0x30;
  local_64[16] = 0x71;
  local_64[17] = 0x5f;
  local_64[18] = 99;
  local_64[19] = 0x2f;
  local_64[20] = 0x5c;
  local_64[21] = 0x74;
  local_64[22] = 0x5d;
  local_64[23] = 0x66;
  for (local_68 = 0; local_68 < 0x18; local_68 = local_68 + 1) {
    local_70 = local_64[local_68] + 9U ^ 9;
    local_6c = local_70;
  }
  FUN_00401150(&DAT_00422fac);
  FUN_0040f240("pause");
  local_64[23] = 0x40f478;
  __chkesp();
  return;
}

change the code!

#include<stdio.h>


void FUN_0040f350(void);


int main(void){
	FUN_0040f350();

return 0;	
	
}
void FUN_0040f350(void)

{

  int local_70;
  //int local_6c;
  int local_68;
  int local_64 [24];
  int local_64_2[24];

  local_64[0] = 0x73;
  local_64[1] = 0x5e;
  local_64[2] = 0x61;
  local_64[3] = 0x72;
  local_64[4] = 0x67;
  local_64[5] = 0x2f;
  local_64[6] = 0x6b;
  local_64[7] = 0x72;
  local_64[8] = 0x41;
  local_64[9] = 0x30;
  local_64[10] = 0x31;
  local_64[11] = 0x69;
  local_64[12] = 0x75;
  local_64[13] = 0x76;
  local_64[14] = 0x65;
  local_64[15] = 0x30;
  local_64[16] = 0x71;
  local_64[17] = 0x5f;
  local_64[18] = 99;
  local_64[19] = 0x2f;
  local_64[20] = 0x5c;
  local_64[21] = 0x74;
  local_64[22] = 0x5d;
  local_64[23] = 0x66;
  
  for (local_68 = 0; local_68 < 0x18; local_68 = local_68 + 1) {
    local_70 = (local_64[local_68] + 0x9) ^ 0x9;
    //local_6c = local_70;
    local_64_2[local_68]=local_70;
    printf("%c",local_70 );
    
  }
  //cout>>endl;
  printf("\n");
  for (local_68 = 23; local_68 > -1; local_68 = local_68 - 1) {
    //local_70 = (local_64[local_68] + 0x9) ^ 0x9;
    //local_6c = local_70;
    
    printf("%c",local_64_2[local_68] );
    
  }
  
  
  //return 0;
}

image-20230716175847565

image-20230716175720693

fotl1eas0gvw{30Cr}1yrcnu

flag{C1rno1sv3rycute0w0}

some files!
涉及的实例
https://download.csdn.net/download/m0_47210241/88053587

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

# 逆向神器:Ghidra简介及使用方法 的相关文章

  • 【计算机毕业设计】校园体育赛事管理系统

    身处网络时代 随着网络系统体系发展的不断成熟和完善 人们的生活也随之发生了很大的变化 人们在追求较高物质生活的同时 也在想着如何使自身的精神内涵得到提升 而读书就是人们获得精神享受非常重要的途径 为了满足人们随时随地只要有网络就可以看书的要
  • 【计算机毕业设计】线上招聘问答系统

    计算机网络发展到现在已经好几十年了 在理论上面已经有了很丰富的基础 并且在现实生活中也到处都在使用 可以说 经过几十年的发展 互联网技术已经把地域信息的隔阂给消除了 让整个世界都可以即时通话和联系 极大的方便了人们的生活 所以说 线上招聘问
  • 【计算机毕业设计】网上拍卖系统

    现代经济快节奏发展以及不断完善升级的信息化技术 让传统数据信息的管理升级为软件存储 归纳 集中处理数据信息的管理方式 本网上拍卖系统就是在这样的大环境下诞生 其可以帮助使用者在短时间内处理完毕庞大的数据信息 使用这种软件工具可以帮助管理人员
  • 【计算机毕业设计】北关村基本办公管理系统

    在如今社会上 关于信息上面的处理 没有任何一个企业或者个人会忽视 如何让信息急速传递 并且归档储存查询 采用之前的纸张记录模式已经不符合当前使用要求了 所以 对北关村基本办公信息管理的提升 也为了对北关村基本办公信息进行更好的维护 北关村基
  • python超详细基础文件操作【建议收藏】

    文章目录 前言 发现宝藏 1 文件操作 1 1 文件打开与关闭 1 1 1 打开文件 1 1 2 关闭文件 1 2 访问模式及说明 2 文件读写 2 1 写数据 write 2 2 读数据 read 2 3 读数据 readlines 2
  • 小白入门黑客之渗透测试(超详细)基本流程(内附工具)

    经常会收到小伙伴们这样的私信 为什么我总是挖不到漏洞呢 渗透到底是什么样的流程呢 所以全网最详细的渗透测试流程来了 渗透测试其实就是通过一些手段来找到网站 APP 网络服务 软件 服务器等网络设备和应用的漏洞 告诉管理员有哪些漏洞 怎么填补
  • 深入了解 Python MongoDB 查询:find 和 find_one 方法完全解析

    在 MongoDB 中 我们使用 find 和 find one 方法来在集合中查找数据 就像在MySQL数据库中使用 SELECT 语句来在表中查找数据一样 查找单个文档 要从MongoDB的集合中选择数据 我们可以使用 find one
  • 【计算机毕业设计】趵突泉景区的智慧导游小程序_5ztvv

    当今社会已经步入了科学技术进步和经济社会快速发展的新时期 国际信息和学术交流也不断加强 计算机技术对经济社会发展和人民生活改善的影响也日益突出 人类的生存和思考方式也产生了变化 传统趵突泉景区的智慧导游采取了人工的管理方法 但这种管理方法存
  • 【计算机毕业设计】白优校园社团网站的设计与实现

    近些年 随着中国经济发展 人民的生活质量逐渐提高 对网络的依赖性越来越高 通过网络处理的事务越来越多 随着白优校园社团网站的常态化 如果依然采用传统的管理方式 将会为工作人员带来庞大的工作量 这将是一个巨大考验 需要投入大量人力开展对社团
  • 【计算机毕业设计】OA公文发文管理系统_xtv98

    近年来 人们的生活方式以网络为主题不断进化 OA公文发文管理就是其中的一部分 现在 无论是大型的还是小型的网站 都随处可见 不知不觉中已经成为我们生活中不可或缺的存在 随着社会的发展 除了对系统的需求外 我们还要促进经济发展 提高工作效率
  • Redis分布式锁--java实现

    文章目录 Redis分布式锁 方案 SETNX EXPIRE 基本原理 比较好的实现 会产生四个问题 几种解决原子性的方案
  • 静态综合实验

    1 IP地址划分 192 168 1 0 27 用于主干拆分 192 168 1 32 27 用于用户拆分 192 168 1 64 27 用于用户拆分 192 168 1 96 27 用于用户拆分 192 168 1 128 27 用于用
  • SAP ERP系统是什么?SAP好用吗?

    A公司是一家传统制造企业 公司曾先后使用过数个管理软件系统 但各部门使用的软件都是单独功能 导致企业日常管理中数据流与信息流相对独立 形成了 信息孤岛 随着公司近年业务规模的快速发展以及客户数量的迅速增加 企业原有的信息系统在销售预测及生产
  • 光波导结构

    摘要 增强现实和混合现实 AR MR 领域的新应用引起了人们对带有光栅区域的光波导系统的越来越多的关注 这些光波导系统用于输入和输出耦合以及扩瞳目的 VirtualLab Fusion为这类系统的仿真和设计提供了几个强大的工具 其中一个是具
  • 编写一个递归函数来反转输入字符串

    我一直在读 C For Every 一书 其中一个练习说要编写一个函数string reverse string str 其中返回值是相反的str 有人可以写一些基本代码并向我解释吗 从昨天开始我就一直盯着这个问题 想不通 我得到的最远的是
  • 我怎样才能以相反的方式制作动画?

    问候 我正在更改用作 bar 的元素的宽度 并且有效 然而我不能 使它朝相反的方向动画 我尝试将 放在 bar width 前面 但无济于事 宽度将动态计算 只是我希望方向向左而不是向右 就像这样 var bar width this cs
  • 从数组末尾切片 NSArray

    切片 的最佳方法是什么NSArray从数组的末尾而不是开头开始 例如 查找包含 a 的最后几个元素的子数组 NSArray长度未知 在 Python 中 您可以使用负索引来完成此操作 例如 new list old list 5 3 在 O
  • 反转字符串中空格分隔单词的顺序

    反转字符串中空格分隔单词的顺序的最佳方法是什么 Hello everybody in stackoverflow becomes stackoverflow in everybody Hello 尝试这个 s Hello everybody
  • 通过 url 将整数传递给 php $_GET

    所以我正在做一些 CTF 挑战之一是关于 php 类型杂耍 代码看起来像这样 if GET var1 hash md4 GET var1 print flag 所以我 80 确定我需要传入一个整数 这样它就会是真的 但我能操作的只是 url
  • 如何反转字符串中的单词但将标点符号保留在正确的位置? [复制]

    这个问题在这里已经有答案了 我编写了以下代码来反转输入字符串 Scanner s new Scanner System in System out println Please enter a sentence String sentenc

随机推荐

  • ubuntu安装tomcat7

    1 上传tomcat7源码包 百度云盘链接 https pan baidu com s 1Yo4DVOcm667F iKhGwpPBw 密码 ce1h 2 先安装 JDK cd opt tar zxvf jdk 8u161 linux x6
  • 解决GitHub密码授权访问即将失效的问题

    解决GitHub密码授权访问即将失效的问题 前言 1 网络中的解决方法 2 GitHub密码授权弃用通知 3 创建个人访问令牌 4 IDEA设置Token访问GitHub 4 1 忘记密码 4 2 Token授权 5 GitHub 客户端
  • 非Unicode程序创建非本地字符集的文件路径

    开发中需要用到纯MFC的程序完成整包的文件释放 过程大概是根据整包中的文件路径记录在当前执行路径下建立子目录 创建文件 然后将整包中的内存数据写入该文件 正常英文或中文系统下路径创建及文件读写都没有遇到问题 但在路径名称或文件名称出现非本地
  • 前端常见的适配方法

    作为一个真正的前端攻城狮 我们经常会谈到web前端怎么做适配 然而平常经常做的事 一旦问起来突然好像脑子一片空白 只能想到rem flex 媒体查询那些 因此想记录一篇文章以此警醒自己 一 固定布局 pc端 静态布局 以像素作为页面的基本单
  • 谁在为网络安全制造标尺?

    我们想帮助企业往后退一步 去全局的看一下自己的安全能力建设水平如何 以及在当下的阶段最应该做的安全建设是什么 度量 对应的是更清晰的认知 而对企业安全而言 这种认知 也更在成为一把新的标尺 作者 皮爷 出品 产业家 6月开始 吕一平开始频繁
  • MySQL存储引擎:MyISAM和InnoDB区别详解

    1 MyISAM和InnoDB区别 1 1 区别 InnoDB MyISAM 构造 由 frm文件 表空间 分为独立表空间或者共享表空间 和日志文件 redo log 组成 MyISAM在磁盘上存储成三个文件 其中 frm文件存储表定义 M
  • 百度坐标(BD-09)、国测局坐标(火星坐标,GCJ-02)、和 WGS-84 坐标系之间的转换

    百度坐标 BD 09 国测局坐标 火星坐标 GCJ 02 和 WGS 84 坐标系之间的转换 Created by Wandergis on 2015 7 8 提供了百度坐标 BD 09 国测局坐标 火星坐标 GCJ 02 和 WGS 84
  • CentOS 7安装Zabbix 4.4

    我们当前部署Zabbix是在Centos7的基础上部署Zabbix4 4版本 我的服务器配置是双路四核CPU 8GBRAM 以下安装步骤仅供参考 大家也可以参考官方资料 https www zabbix com documentation
  • 142 环形链表

    142 环形链表 给定一个链表的头节点 head 返回链表开始入环的第一个节点 如果链表无环 则返回 null 重点在于如何判断是否有环 采用快慢指针的做法 快指针每次走2步 慢指针每次走1步 快指针相对慢指针每次多走一步 这样确保如果有环
  • Map Reduce和流处理

    欢迎大家前往腾讯云 社区 获取更多腾讯海量技术实践干货哦 本文由 从流域到海域翻译 发表于腾讯云 社区 map 和reduce 是在集群式设备上用来做大规模数据处理的方法 用户定义一个特定的映射 函数将使用该映射对一系列键值对进行处理 直接
  • C++日期累加

    日期累加 题目描述 设计一个程序能计算一个日期加上若干天后是什么日期 输入描述 输入第一行表示样例个数m 接下来m行每行四个整数分别表示年月日和累加的天数 输出描述 输出m行 每行按yyyy mm dd的个数输出 include
  • 深度学习(二):张量和基本运算

    张量是一个类型化的n维数组 tf Tensor 是tensorflow基本数据格式 张量的阶就是数组的维度 张量的属性 图 形状 名字 op print a graph 输出程序所在的内存地址 print a shape 输出张量a的维度
  • QtIFW学习

    1 构建Qt安装程序 1 1 Qt应用程序结构 1 2 不同操作系统常用的打包工具 1 2 1 多平台 GUI 安装程序 跨平台安装工具 1 2 2 windows 1 2 3 Linux 1 3 静态库与动态库的区别 2 程序打包过程 3
  • 一个注解就能下载任意对象?SpringBoot如此强大?

    下载功能应该是比较常见的功能了 虽然一个项目里面可能出现的不多 但是基本上每个项目都会有 而且有些下载功能其实还是比较繁杂的 倒不是难 而是麻烦 如果我说现在只需要一个注解就能帮你下载任意的对象 是不是觉得非常的方便 Download so
  • github一些有趣的使用场景和基本使用方法

    文章目录 github的使用入门 安装 Git 创建 GitHub 帐户 在本地设置 Git 克隆仓库 进行修改和提交 推送更改 拉取更新 删除Github上废弃的仓库 注意 github更多有趣的使用场景 协作和社交编程 文档和知识库 学
  • Spring Data JPA 使用Specification 实现动态查询

    实体对象 package com zzg entity import java util Date import javax persistence Column import javax persistence Entity import
  • 游戏开发UE4杂项系列:更换默认c++编辑器

    更换项目中使用的c 编辑器 编辑器 Edit gt 编辑器偏好设置 Edit Preference gt 通用 General gt 源代码 source code gt 源代码编辑器 source code edit 附加一个UE4使用交
  • 【死磕NIO】— 跨进程文件锁:FileLock

    大家好 我是大明哥 一个专注于 死磕 Java 系列创作的程序员 死磕 Java 系列为作者 chenssy 倾情打造的 Java 系列文章 深入分析 Java 相关技术核心原理及源码 死磕 Java https www cmsblogs
  • cin.get()处理输入的问题

    在C primer 中经常遇见while cin cin get n 的语句 此循环就是处理掉多余的流 实验代码如下 1 string b char a 10 cin get a 10 while cin get n continue ci
  • # 逆向神器:Ghidra简介及使用方法

    逆向神器 Ghidra简介及使用方法 https github com NationalSecurityAgency ghidra jdk https adoptium net zh CN temurin releases binwalk