2019-i-SOON-CTF re

main函数两个关键函数:

sub_4111F4(a1, &Str, (int)v9)和sub_4112B7(a1, v9)

sub_4112B7(a1, v9) :

sub_4112B7

得到sub_4111F4的结果应为artqkoehqpkbihv

sub_4111F4里的函数sub_413650无法F5,改sp

先找到对应汇编码

sub_413650

通过ALT + k 修正堆栈,选中text:004138AB处的call

ALT+k

改好后即可F5反汇编,如下:

改了sp后

F5后:


sub_413650内容
sub_413650内容

按逻辑写脚本

#include <stdio.h>
#include <math.h>
int main()
{
    char v9[] = "artqkoehqpkbihv";
    char base[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
    char v16[64] = {0};
    char flag[16] = {0};
    int i,tmp,k;
    for(i=0;i<64;++i)
    {
        tmp = base[i] - 'a';
        v16[i] = abs(tmp);
    }
    for(k=0;k<15;++k)
    {
        flag[k] = v9[k]-v16[k];
        while(flag[k]<97)flag[k]+=26;
        while(flag[k]>122)flag[k]-=26;
    }
    puts(flag);
}

flag{umpnineissogood}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • VC 程序内存和编译的一些特征C++ 构造函数C++ 成员函数C++ 析构函数C++ 全局对象的构造C++ 全局对...
    MagicalGuy阅读 852评论 0 0
  • Reverse SignIn exeinfope 载入查壳。一个64位的ELF程序,无壳。 先来静态分析一波,载入...
    PureT阅读 1,649评论 0 1
  • 王爽汇编全书知识点大纲 第一章 基础知识 机器语言 汇编语言的产生 汇编语言的组成 存储器 cpu对存储器的读写 ...
    2c3ba901516f阅读 2,454评论 0 1
  • 一.概述 语言分类 1.机器语言: 由0和1组成的机器指令,如:0101 0001 1101 0110 2.汇编语...
    宙斯YY阅读 1,977评论 0 0
  • 71.4kg 晨练十公里。 早饭:一杯八宝粥,5个芋头,一块煎饼卷橄榄菜,一份手抓饼,一包纯牛奶,一杯咖啡,一个苹...
    yummy0632阅读 161评论 0 0