【软件逆向】软件破解?病毒木马?游戏外挂?
文章目录
- 课前闲聊
- 认识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容器
一、容器的概念 容器是由一个或多个与系统其余部分隔离的进程组成的集合。我们可以理解为“集装箱”。 集装箱是打包和装运货物的标准方式。它作为一个箱子进行标记、装载、卸载,以及从一个 位置运输到另一个位置。该容器的内容与其他容器的内容隔离,…...
基于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 框架,先来复习下分库分表的基础概念,技术名词大多晦涩难懂,不要死记硬背理解最重要,当你捅破那层窗户纸,发现其实它也就那么回事。 什么是分库分表 分库分表是在海量数据下࿰…...
多种调度模式下的光储电站经济性最优储能容量配置分析(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…...
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...
Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践
前言:本文将向开发者介绍一款创新性协作工具——Neko虚拟浏览器。在数字化协作场景中,跨地域的团队常需面对实时共享屏幕、协同编辑文档等需求。通过本指南,你将掌握在Ubuntu系统中使用容器化技术部署该工具的具体方案,并结合内网…...
boost::filesystem::path文件路径使用详解和示例
boost::filesystem::path 是 Boost 库中用于跨平台操作文件路径的类,封装了路径的拼接、分割、提取、判断等常用功能。下面是对它的使用详解,包括常用接口与完整示例。 1. 引入头文件与命名空间 #include <boost/filesystem.hpp> namespace fs b…...
Linux操作系统共享Windows操作系统的文件
目录 一、共享文件 二、挂载 一、共享文件 点击虚拟机选项-设置 点击选项,设置文件夹共享为总是启用,点击添加,可添加需要共享的文件夹 查询是否共享成功 ls /mnt/hgfs 如果显示Download(这是我共享的文件夹)&…...
关于 ffmpeg设置摄像头报错“Could not set video options” 的解决方法
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/148515355 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…...
触发DMA传输错误中断问题排查
在STM32项目中,集成BLE模块后触发DMA传输错误中断(DMA2_Stream1_IRQHandler进入错误流程),但单独运行BLE模块时正常,表明问题可能源于原有线程与BLE模块的交互冲突。以下是逐步排查与解决方案: 一、问题根源…...
