学习目标:

- 无名侠的课,看二进制培训(第二集和第三集)(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学习【进度 - 第二课】的更多相关文章

  1. PHP程序猿必须学习的第二课——站点安全问题预防

    作为PHP程序猿.第一课我们学习了基本的语法.那么在熟悉基本的语法之后我们应该学些什么呢?我觉得是安全问题.安全问题基于一个站点宛如基石,一着不慎,意味着灾难性的事故. 这里主要就提三点最简单,也是最 ...

  2. 《梳理业务的三个难点》---创业学习---训练营第二课---HHR---

    一,<开始学习> 1,融资的第一步:把业务一块一块的梳理清楚. 2,预热思考题: (1)投资人会问能做多大,天花板怎么算?你的答案可以得到大家的认同吗?(四种方法,直接引用,自顶向下,自底 ...

  3. 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 ...

  4. maven学习系列第二课,关于springmvc的pop.xml的依赖的添加

    不说废话了,图的书序就是操作顺序 1. 2.

  5. Python学习笔记 第二课 循环

    >>> movies=["The Holy Grail", 1975, "The Life of Brian", 1979, "Th ...

  6. JSP学习(第二课)

    把GET方式改为POST在地址栏上就不会显示. 发现乱码了,设置编码格式(这个必须和reg.jsp中page的charset一致):  但是注意了!我们传中文名,就会乱码: 通过get方式提交的请求无 ...

  7. Python学习,第二课 - 字符编码

    关于字符编码 python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill) ASCII(American Standard Code for Information Inte ...

  8. 小白学习VUE第二课:环境搭建 VUE Node.js VSCode template模板

    环境搭建 VUE Node.js VSCode template模板: 首先安装node:http://www.runoob.com/nodejs/nodejs-install-setup.html ...

  9. 吴恩达深度学习第1课第4周-任意层人工神经网络(Artificial Neural Network,即ANN)(向量化)手写推导过程(我觉得已经很详细了)

    学习了吴恩达老师深度学习工程师第一门课,受益匪浅,尤其是吴老师所用的符号系统,准确且易区分. 遵循吴老师的符号系统,我对任意层神经网络模型进行了详细的推导,形成笔记. 有人说推导任意层MLP很容易,我 ...

  10. 【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

    第二课 传统神经网络 <深度学习>整体结构: 线性回归 -> 神经网络 -> 卷积神经网络(CNN)-> 循环神经网络(RNN)- LSTM 目标分类(人脸识别,物品识别 ...

随机推荐

  1. 阶乘-n!_C语言实现

    n! // Code file created by C Code Develop #include "stdio.h" #include "stdlib.h" ...

  2. idea快捷键Ctrl+alt+m:如何快速抽离部分方法

    Ctrl+alt+m 效果如下图

  3. uniapp生成的app怎么上架到iphone的app store

    首先这里需要强调的是,上架app store,必须用自己公司的账号的证书打包,不能使用别的公司的证书打包,因为假如使用别人的证书打包,打包出来的app,只能上传到别人的app store账号,你开发的 ...

  4. 中国的AI领域发展的重大不足 —— 数据缺少,尤其是自然语言领域(NLP)、大模型领域

    全世界公开可用的语言文本中绝大部分是英文文本,其中中文文本只有1.5% 相关: China's Betting Big On Artificial Intelligence. Could The US ...

  5. 支持NVIDIA GPU —— 如何运行docker环境下的Jax环境

    项目地址: https://github.com/NVIDIA/JAX-Toolbox 具体的安装命令: 地址: https://github.com/NVIDIA/JAX-Toolbox/pkgs/ ...

  6. sublime添加GBK编码格式

    1.背景 2.步骤 Tools(工具) --->  Install Package Control...(安装控制包) 点击执行完成后继续下一步: 点击Package Control,随后搜索I ...

  7. springboot整合validation统一参数检查

    1.背景 实际开发中对参数进行检查,是常见 比如如下代码 /** * 参数检查测试(传统做法) * * @param dto * @return */ @GetMapping("/param ...

  8. Oracle数据库表转换为Mysql表

    1.背景 在实际开发中,可能会涉及到开始是Oracle数据库,但是后面想使用mysql数据库 那么这时候我们就需要使用到Oracle数据库转变为mysql数据库 2.具体步骤 步骤一:导出Oracle ...

  9. Apache DolphinScheduler 支持使用 OceanBase 作为元数据库啦!

    DolphinScheduler是一个开源的分布式任务调度系统,拥有分布式架构.多任务类型.可视化操作.分布式调度和高可用等特性,适用于大规模分布式任务调度的场景.目前DolphinScheduler ...

  10. 18-canvas绘制饼状图

    1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="U ...