Task2 - IDA学习【进度 - 第二课】
学习目标:
- 无名侠的课,看二进制培训(第二集和第三集)(https://space.bilibili.com/7761039/video)
- 会反汇编
- 会字符串搜索(f12)
- 会简单异或解密
了解一下操作系统
linux系统的可执行文件的后缀
windows系统的可执行文件的后缀
了解安装die(Detect It Easy)工具(自行网上或论坛搜索)
可以略微了解docker(和vmware差不多)
第二课 简单的加密算法
1. 先运行一下程序
2.使用左侧functions查找main函数
3.将函数名改为真实函数名
点击查看代码
int __cdecl main_0(int argc, const char **argv, const char **envp)
{
int v3; // edx
int v5; // [esp-4h] [ebp-1E8h]
unsigned int i; // [esp+D0h] [ebp-114h]
char v7[260]; // [esp+DCh] [ebp-108h] BYREF
int v8; // [esp+1E0h] [ebp-4h]
int savedregs; // [esp+1E4h] [ebp+0h] BYREF
printf("Hi CTFer,Input your flag:");
scanf("%s", v7);
for ( i = 0; i < strlen(v7); ++i )
++v7[i];
if ( sub_454086(v7, "gmbh|ZPV`GJOE`JU`IBIB~") )
printf("you are wrong!\n");
else
printf("you are right!\n");
sub_4558B4(&savedregs, &dword_45A2C0, 0, v3);
return sub_4546B7((unsigned int)&savedregs ^ v8, v5);
}
4.对main函数分析发现v7变量被for循环每一个字母向后移动了一位,结果得到“gmbh|ZPV`GJOE`JU`IBIB~”所以有结果想要知道初始值,只需要每一个向前移动一位
5.编写
点击查看C语言代码
#include <stdio.h>
#include <string.h>
int main(void)
{
char str1[] = "gmbh|ZPV`GJOE`JU`IBIB~";
for ( int i = 0; i < strlen(str1); ++i )
--str1[i];
printf("%s\n",str1);
printf("Ok\n");
return 0;
}
Task2 - IDA学习【进度 - 第二课】的更多相关文章
- PHP程序猿必须学习的第二课——站点安全问题预防
作为PHP程序猿.第一课我们学习了基本的语法.那么在熟悉基本的语法之后我们应该学些什么呢?我觉得是安全问题.安全问题基于一个站点宛如基石,一着不慎,意味着灾难性的事故. 这里主要就提三点最简单,也是最 ...
- 《梳理业务的三个难点》---创业学习---训练营第二课---HHR---
一,<开始学习> 1,融资的第一步:把业务一块一块的梳理清楚. 2,预热思考题: (1)投资人会问能做多大,天花板怎么算?你的答案可以得到大家的认同吗?(四种方法,直接引用,自顶向下,自底 ...
- Python-Django框架学习笔记——第二课:Django的搭建
Django 环境搭建 一. 版本选择 Django 1.5.x 支持 Python 2.6.5 Python 2.7, Python 3.2 和 3.3. Django 1.6.x 支持 Pytho ...
- maven学习系列第二课,关于springmvc的pop.xml的依赖的添加
不说废话了,图的书序就是操作顺序 1. 2.
- Python学习笔记 第二课 循环
>>> movies=["The Holy Grail", 1975, "The Life of Brian", 1979, "Th ...
- JSP学习(第二课)
把GET方式改为POST在地址栏上就不会显示. 发现乱码了,设置编码格式(这个必须和reg.jsp中page的charset一致): 但是注意了!我们传中文名,就会乱码: 通过get方式提交的请求无 ...
- Python学习,第二课 - 字符编码
关于字符编码 python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill) ASCII(American Standard Code for Information Inte ...
- 小白学习VUE第二课:环境搭建 VUE Node.js VSCode template模板
环境搭建 VUE Node.js VSCode template模板: 首先安装node:http://www.runoob.com/nodejs/nodejs-install-setup.html ...
- 吴恩达深度学习第1课第4周-任意层人工神经网络(Artificial Neural Network,即ANN)(向量化)手写推导过程(我觉得已经很详细了)
学习了吴恩达老师深度学习工程师第一门课,受益匪浅,尤其是吴老师所用的符号系统,准确且易区分. 遵循吴老师的符号系统,我对任意层神经网络模型进行了详细的推导,形成笔记. 有人说推导任意层MLP很容易,我 ...
- 【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络
第二课 传统神经网络 <深度学习>整体结构: 线性回归 -> 神经网络 -> 卷积神经网络(CNN)-> 循环神经网络(RNN)- LSTM 目标分类(人脸识别,物品识别 ...
随机推荐
- 阶乘-n!_C语言实现
n! // Code file created by C Code Develop #include "stdio.h" #include "stdlib.h" ...
- idea快捷键Ctrl+alt+m:如何快速抽离部分方法
Ctrl+alt+m 效果如下图
- uniapp生成的app怎么上架到iphone的app store
首先这里需要强调的是,上架app store,必须用自己公司的账号的证书打包,不能使用别的公司的证书打包,因为假如使用别人的证书打包,打包出来的app,只能上传到别人的app store账号,你开发的 ...
- 中国的AI领域发展的重大不足 —— 数据缺少,尤其是自然语言领域(NLP)、大模型领域
全世界公开可用的语言文本中绝大部分是英文文本,其中中文文本只有1.5% 相关: China's Betting Big On Artificial Intelligence. Could The US ...
- 支持NVIDIA GPU —— 如何运行docker环境下的Jax环境
项目地址: https://github.com/NVIDIA/JAX-Toolbox 具体的安装命令: 地址: https://github.com/NVIDIA/JAX-Toolbox/pkgs/ ...
- sublime添加GBK编码格式
1.背景 2.步骤 Tools(工具) ---> Install Package Control...(安装控制包) 点击执行完成后继续下一步: 点击Package Control,随后搜索I ...
- springboot整合validation统一参数检查
1.背景 实际开发中对参数进行检查,是常见 比如如下代码 /** * 参数检查测试(传统做法) * * @param dto * @return */ @GetMapping("/param ...
- Oracle数据库表转换为Mysql表
1.背景 在实际开发中,可能会涉及到开始是Oracle数据库,但是后面想使用mysql数据库 那么这时候我们就需要使用到Oracle数据库转变为mysql数据库 2.具体步骤 步骤一:导出Oracle ...
- Apache DolphinScheduler 支持使用 OceanBase 作为元数据库啦!
DolphinScheduler是一个开源的分布式任务调度系统,拥有分布式架构.多任务类型.可视化操作.分布式调度和高可用等特性,适用于大规模分布式任务调度的场景.目前DolphinScheduler ...
- 18-canvas绘制饼状图
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="U ...