当前位置: 首页 > news >正文

【软件逆向】软件破解?病毒木马?游戏外挂?

文章目录

  • 课前闲聊
  • 认识CTF
    • 什么是CTF
    • CTF解题模式
  • 什么是逆向
    • 定义
    • 应用领域
    • CTF中的逆向
    • 现状
      • 推荐书籍
    • 学习要点
    • 逆向工程学习基础
  • 常规逆向流程
    • 阶段一:信息收集
    • 阶段二:过保护后静态调试
    • 阶段三:结合动态调试
    • 阶段四:写解题脚本逆向
  • 例题概览
    • 1-控制台程序
      • 解题过程
    • 2-Crackme
    • 3-游戏
    • 4-移动安全
  • CTF逆向赛题共同点
    • 出题套路
    • 怎样出一道题?
  • 真实世界中的逆向
    • 攻击
    • 防御
  • 逆向知识大纲
    • 逆向常用框架

课前闲聊

你知道吗?unity学了可以速通黄游
你知道吗?CTF打好了可以去美国参加国际比赛
你想打竞赛提升自己嘛?
想提升逆向功底却还在黑暗里摸索?
对防治软件破解和反制游戏外挂感兴趣?

in1t-主攻软件攻防、移动安全
大二大三参加国赛,拿国奖。
ctftime国际赛排名,打积分。
Misc–python pvm的逃逸
合天pwn学过了,很入门
shellcode恶意代码–拿shell的代码

认识CTF

什么是CTF

CTF是指Capture The Flag,是一种网络安全竞赛,参赛者需要在规定时间内解决一系列的安全问题,获取旗帜并提交给组织者,以获取积分和排名。这种比赛可以提高参赛者的安全意识和技能,也可以促进安全社区的交流和合作。
在这里插入图片描述

CTF解题模式

解题模式 (Jeopardy)常见于线上选拔比赛。在解题模式 CTF 赛制中,参赛队伍可以通过互联网或者现场网络参与,参赛队伍通过与在线环境交互或文件离线分析解决网络安全技术挑战获取相应分值,类似于 ACM编程竞赛、信息学奥林匹克赛,根据总分和时间来进行排名。

不同的是这个解题模式一般会设置 一血 、二血、三血,也即最先完成的前三支队伍会获得额外分值,所以这不仅是对首先解出题目的队伍的分值鼓励,也是一种团队能力的间接体现。

题目类型主要包含 Web网络攻防、Re逆向工程、Pwn二进制漏洞利用、Crypto 密码攻击、Mobile 移动安全以及 Misc安全杂项 这六个类别。

什么是逆向

逆向是指分析数据和程序的过程,旨在理解原理和工作原理,以及编写可控制的程序。

主要是:把二进制机器码反汇编得到的汇编代码,进行功能分析。

定义

软件代码逆向主要指对软件的结构、流程、算法、代码等进行逆向拆分及分析

对软件进行定制化和私人化,自己开发模块,把它嵌入,

把软件变得更顺手!
随心所欲~~
让自己的软件不同!

应用领域

主要应用于软件维护、软件破解、漏洞挖掘、恶意代码分析等

CTF中的逆向

平台: Windows、linux、Android、开发板
lot固件吗…
涉及:算法、加解密、反分析、反调试、系统机制等

现状

现在的awd全是脚本怪物

AWD:Attack With Defence,即攻防对抗,比赛中每个队伍维护多台服务器(一般两三台,视小组参赛人数而定),服务器中存在多个漏洞(web层、系统层、中间件层等),利用漏…

推荐书籍

Re4b
C++反汇编与逆向分析技术揭秘
加密与解密
程序员的自我修养

学习要点

逆向要潜心学习,入门慢,但是横向提高快!
buu nss上刷完就起飞了

逆向工程学习基础

熟悉如操作系统,汇编语言,加解密等相关知识具有多种高级语言的编程经验有较强的程序理解和逆向思维
耐得住寂寞

常规逆向流程

阶段一:信息收集

使用 strings/file/binwalk/strace 等工具收集信息,并根据这些静态信息进行google/github 搜索

通过信息收集来指导你后续的工作,知道这个文件出自哪里的片段,边打比赛边学习

阶段二:过保护后静态调试

研究程序的保护方法,检查是否存在代码混淆、壳、反调试等技术,并设法破除绕过保护根据平台/语言选择相应反汇编/反编译器对目标软件进行静态分析,并根据一些程序特征快速定位关键代码进行分析

阶段三:结合动态调试

结合动态调试,验证自己的静态分析猜想,在动调过程中进一步熟悉程序功能理清程序流程,

阶段四:写解题脚本逆向

根据正向算法推理逆向算法

写出解题脚本,求解 flag

例题概览

1-控制台程序

在这里插入图片描述
提示输入后,验证,决定你得不得到flag

解题过程

1.收集信息,如上所述
在这里插入图片描述
2.ida反汇编
在这里插入图片描述
3.为了更快分析程序,直接反编译
在这里插入图片描述
注意:有的没办法反编译出来,咱就只能看汇编了
4.动态调试
在这里插入图片描述
5.理清程序思路,明白了!
在这里插入图片描述

2-Crackme

在这里插入图片描述
在实战里面就是输入注册码
在题目里面就是flag

在这里插入图片描述
在这里插入图片描述

3-游戏

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
常规解法也可以解出来
但如果会开源框架,那解题速度大大增加!

4-移动安全

在这里插入图片描述
分析注册码生成逻辑
在这里插入图片描述
其他方法:开源框架
在这里插入图片描述

CTF逆向赛题共同点

出题套路

输入x
数据处理
判断输入是否正确

怎样出一道题?

怎样接收用户输入x
以什么形式来处理数据对输入做变换 f3(f2(f1(x)))…怎样解密密文判断输入是否正确
直接输出flag
输入就是flag
对输入做固定变换就是flag

真实世界中的逆向

攻击

病毒木马
软件破解
游戏外挂
软件漏洞挖掘与利用

防御

杀毒
木马检测
软件加固
外挂检测
软件漏洞检测与补丁

逆向知识大纲

在这里插入图片描述

逆向常用框架

在这里插入图片描述


🌸I could be bounded in a nutshell and count myself a king of infinite space.
 特别鸣谢:木芯工作室
特别鸣谢:木芯工作室 、Ivan from Russia


相关文章:

【软件逆向】软件破解?病毒木马?游戏外挂?

文章目录课前闲聊认识CTF什么是CTFCTF解题模式什么是逆向定义应用领域CTF中的逆向现状推荐书籍学习要点逆向工程学习基础常规逆向流程阶段一:信息收集阶段二:过保护后静态调试阶段三:结合动态调试阶段四:写解题脚本逆向例题概览1-控制台程序解题过程2-Crackme3-游戏4-移动安全C…...

curl请求常用参数和返回码

curl是一个用于传输数据的工具,支持各种协议,如HTTP、FTP、SMTP等。以下是一些常用的curl请求参数及其作用: -X, --request:指定HTTP请求方法,常见的有GET、POST、PUT、DELETE等。 -H, --header:设置HTTP请…...

【STM32】进阶(一):抢占式优先级和响应式优先级(NVIC_PriorityGroupConfig)

1、简介 STM32(Cortex-M3)中每个中断源都有两级优先级:抢占式优先级(pre-emption priority)和子优先级(subpriority),子优先级也叫响应式优先级。 1.1 抢占式优先级 望文知义,就是优先级高的…...

LogCompilation后JIT输出文件格式解析

https://wiki.openjdk.org/display/HotSpot/LogCompilationoverview https://spotcodereviews.com/articles/optimization/2020/12/23/why-does-the-jit-continually-recompile-the-same-method.html task_queued count表示总共执行次数,iicount表示解释器执行次数…...

Linux学习第二十四节-Podman容器

一、容器的概念 容器是由一个或多个与系统其余部分隔离的进程组成的集合。我们可以理解为“集装箱”。 集装箱是打包和装运货物的标准方式。它作为一个箱子进行标记、装载、卸载,以及从一个 位置运输到另一个位置。该容器的内容与其他容器的内容隔离&#xff0c…...

基于quartz实现定时任务管理系统

基于quartz实现定时任务管理系统 背景 说起定时任务框架,首先想到的是Quartz。这是定时任务的老牌框架了,它的优缺点都很明显。借助PowerJob 的readme文档的内容简单带过一下这部分。 除了上面提到,还有elastic-job-lite、quartzui也是相当…...

vue-element-admin:基于element-ui 的一套后台管理系统集成方案

文章目录一、vue-element-admin1、vue-element-admin1.1简介1.2安装2、vue-admin-template2.1简介2.2安装一、vue-element-admin 1、vue-element-admin 1.1简介 vue-element-admin是基于element-ui 的一套后台管理系统集成方案。 GitHub地址:https://github.com…...

KVM-7、KVM 虚拟机创建的几种方式

通过对 qemu-kvm、libvirt 的学习,总结三种创建虚拟机的方式: (1)通过 qemu-kvm 创建 (2)通过 virt-install 创建 (3)通过 virt-manager 创建 在使用这三种创建虚拟机前提是 宿主机必须支持 cpu 的硬件虚拟化技术(Intel 是 vmx,AMD 是svm),通过下面方式进行查看…...

Hadoop三大框架之HDFS

一、概述HDFS产生的背景及定义HDFS产生背景随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,需要一种系统来管理多台机器上的文件,这就是分布式文件…...

好好的系统,为什么要分库分表?

不急于上手实战 ShardingSphere 框架,先来复习下分库分表的基础概念,技术名词大多晦涩难懂,不要死记硬背理解最重要,当你捅破那层窗户纸,发现其实它也就那么回事。 什么是分库分表 分库分表是在海量数据下&#xff0…...

多种调度模式下的光储电站经济性最优储能容量配置分析(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

二分法(适用于任何题型!!!)

今天看二分法看了一天,看吐了,现在讲讲怎么做类题。 只讲两种做法(实则是可合并为一种),任何题型都可以转化为这种做法!!!是任何! 首先,设置 int left,righ…...

js常见的七种继承及实现

在 JavaScript 中,常见的继承方式有以下七种:大厂面试题分享 面试题库前后端面试题库 (面试必备) 推荐:★★★★★地址:前端面试题库1. 原型链继承原型链继承是 JavaScript 中一种基于原型的继承方式&#…...

案例分析之——理由Mybatis动态SQL实现复用

无复用思想的做法: 在没有复用思想的时候,就只顾着实现功能。比如开发过程中涉及到两个表的更新功能,每需要更新一处,就写一个接口,结果出现了写了11个接口的情况。 这样虽然功能实现了,可是可能自…...

MCM 箱模型建模方法及大气 O3 来源解析实用干货

OBM 箱模型可用于模拟光化学污染的发生、演变过程,研究臭氧的生成机制和进行敏感性分析,探讨前体物的排放对光化学污染的影响。箱模型通常由化学机理、物理过程、初始条件、输入和输出模块构成,化学机理是其核心部分。MCM (Master Chemical M…...

【独家】华为OD机试 - 最长连续交替方波信号(C 语言解题)

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧文章目录 最近更新的博客使用说明本期…...

代码随想录算法训练营第二十一天打卡 | 530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先

打卡第21天,继续二叉树,前几天终于补完了,感觉难度上来了。 今日任务 530.二叉搜索树的最小绝对差501.二叉搜索树中的众数 二叉树的最近公共祖先 530.二叉搜索树的最小绝对差 给你一个二叉搜索树的根节点 root ,返回 树中任意两不…...

免费下载丨一看即会,Serverless 技术进阶必读百宝书

过去一年,全球正在加速推进云计算的 Serverless 化进程。Serverless 架构已经逐渐从“被接受”走向了“被学习”和“被应用”。云的产品体系正在 Serverless 化,从计算、存储、数据库到中间件,越来越多的云产品采用了 Serverless 模式。服务器…...

SQL语句的加锁方式 - Mysql 锁机制

SQL语句的加锁方式 - Mysql锁机制 SELECT ... FROM SELECT ... FOR UPDATE / SELECT ... FOR SHARED MODE SELECT ... LOCK IN SHARE MODE SELECT ... FOR UPDATE UPDATE ... WHERE ... DELETE FROM ... WHERE ... INSERT INSERT ... ON DUPLICATE KEY UPDATE REPLACE Mysql锁机…...

C#开发的OpenRA的游戏主界面怎么样创建4

继续游戏主界面创建的主题, 前面已经说到怎么样找到mainmenu.yaml来显示主界面,也说了怎么样找到各个子控件类。 现在就来仔细分析一下,主界面每一部分的功能。 比如下面这个区域的界面是怎么样创建: 要创建这一小部分的界面显示,也是需要做很多的工作。 因为在这里所有UI…...

覆盖5大主流开发平台的报表控件,它值得你一看

为什么大家现在都在使用第三方报表工具呢? 第三方报表工具是数据库存储,数据库程序通常可以存放的数据量是相当大的,可以处理非常复杂的数据结构关系,报表数据交互速度也非常快。不仅能够提高开发效率,还能实现灵活美…...

【冲刺蓝桥杯的最后30天】day4

大家好😃,我是想要慢慢变得优秀的向阳🌞同学👨‍💻,断更了整整一年,又开始恢复CSDN更新,从今天开始更新备战蓝桥30天系列,一共30天,如果对你有帮助或者正在备…...

spring boot actuator 动态修改日志级别

1 日志级别 Spring Boot Actuator包括在运行时查看和配置应用程序日志级别的功能。您可以查看整个列表,也可以查看单个记录器的配置,该配置由显式配置的日志级别和日志框架给出的有效日志级别组成。这些级别可以是: TRACEDEBUGINFOWARNERRORFATALOFFnu…...

兴达易控Modbus转Profinet网关连接1200Profinet转modbus接三菱A800变频器案例

下面介绍A800 变频器通过兴达易控modbus转profinet网关,使1200plc无需编程实现Profinet转modbus协议转换,把modbus变频器轻松组网 网络拓扑如下图 打开博图组态加载GSD文件,modbus转profinet网关从站接口接入到1200PLC上 配置modbus转profine…...

「SAP ABAP」OPEN SQL(四)【FROM语句】

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后…...

一文吃透 SpringMVC 中的转发和重定向

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...

Hbase操作命令

目录 创建表,表中有两个列族 baseinfo, schoolinfo 查看指定表全名空间中的表 查看表描述 禁用/启用 查看是否启用/禁用 删除表 注意,首先要将删除的表设置为禁用状态才可以删除,否则会报错 新增列族 删除列族 更改列族存储版本的限制 增…...

1>LINK : fatal error LNK1104: cannot open file ‘libconvtname.obj‘

我自己最后找到问题原因是: 引用的库名称没有.lib,只有libconvtname。 改成完整的libconvtname.lib即可。 以下是chatGPT的回答 The error message "fatal error LNK1104: cannot open file libconvtname.obj" usually occurs when Visual S…...

数据结构——链表OJ题目讲解(1)

作者:几冬雪来 时间:2023年3月7日 内容:数据结构链表OJ题目讲解 题目来源:力扣和牛客 目录 前言: 刷题: 1.移出链表元素: 2.链表的中间结点: 3. 链表中倒数第k个结点&#xff1…...

LeetCode_二分搜索_困难_154.寻找旋转排序数组中的最小值 II

目录1.题目2.思路3.代码实现(Java)1.题目 已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums [0,1,4,4,5,6,7] 在变化后可能得到: 若旋转 4…...

制作动态网站用什么软件/南宁seo外包要求

修改uni-app 或者 小程序 的复选框和单选框的大小 在写表单的时候 总会遇到使用单选框或者复选框的时候 不管是uni-app 还是小程序 自带的总是太大了 对此我们可以修改其的css属性 修改其大小 1. 原始大小 复选框太大 页面整体不协调 2. 添加css 修改其大小 .size {transform:…...

塘沽做网站/在线数据分析工具

这篇文章主要为大家详细介绍了Java环境配置与编译运行的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 一、开篇 通过对之前Java之路的了解之后,相信初学者们都对Java有了一个比较深印象的了解了。但是事情不能总停留在理论层面…...

深圳电力建设公司/青岛百度seo排名

很久没有病过了,终于来到了。 周日晚上赶一篇文档,快一点才睡,就告诫自己,这样晚睡觉的日子已经过了很长时间了,长此以往会病的,于是决定从周一晚上开始改变一下。结果没有等到周一晚上就不行了。起因…...

在vs2010里怎么做网站/服务之家网站推广

1. 首先安装docker 安装方法可参考官网: https://docs.docker.com/engine/install/centos/ docker version查看docker是否安装成功 2. 如果是远程服务的Docker需要对外暴漏TCP端口(Docker 1.13.1版本) vim /usr/lib/systemd/system/docker…...

景德镇做网站公司/服务器租用

概述: 1)媒体捕获设备包括摄像机和麦克风,还包括屏幕捕获“设备”。对于相机和麦克风,我们使用navigator.mediaDevices.getUserMedia()捕获MediaStreams 。对于屏幕录制,我们改用navigator.mediaDevices.getDisplayMe…...

网站建设与维护服务/爱客crm

1117 聪明的木匠 1 秒 131,072 KB 20 分 3 级题 思路: 第一次切割Li, 花费体力:M 第二次切割Lj,花费体力:M-Li 第三次切割Ls,花费体力:M-Li-Lj N次切割后花费体力为:M-Li-Lj-……-Lk 那么&#…...