DASCTF暑期挑战赛Reverse

DosSnake:

本题考查的是对8086汇编代码分析(当然也可以修改游戏程序直接输出flag,由于我的windows系统打不开游戏程序所以此方法暂且不作分析介绍了)

直接拖进IDA查看汇编代码算了,由于这个程序只给了一个数据段,我们很容易就能找到代码加密逻辑(前面一大段的汇编代码都是为了实现贪吃蛇这个小游戏没啥用,我们直接看加密部分):

可以看到逻辑非常简单,Dasctf的前6部分作为key,后面的26位数据作为密文,进行简单的异或加密

si对应密文指针,di对应key指针,密文数据如下:

直接写脚本一把逆即可得到flag

Exp:

#include <stdio.h>
#include <stdbool.h>
#include <stdint.h>
#include <string.h>

int main() {
   unsigned char a[]="DASCTF";
   unsigned int b[]={ 0x3F, 0x09, 0x63, 0x34, 0x32, 0x13, 0x2A, 0x2F, 0x2A, 0x37, 
     0x3C, 0x23, 0x00, 0x2E, 0x20, 0x10, 0x3A, 0x27, 0x2F, 0x24, 
     0x3A, 0x30, 0x75, 0x67, 0x65, 0x3C};
   int i;
   for(i=0;i<26;i++){
           printf("%c",a[i%6]^b[i]);
   }
}

Strangeprograme:

本题考查的是iat hook

直接在ida分析Strangeprograme_ok.exe,查看字符串找到有一个假flag

看汇编分析发现存在.DASCTF段

直接跳到该处(loc_41D000),进行交叉引用,溯源到sub_413D50,可以看到存在一个反调试

再进入sub_4111BD()->sub_414E30()->sub_411046()->sub_414B90():

查看sub_4111BD函数会发现其内部先定位到.DASCTF段,再进行了SMC

下断点处理一下就可以看见加密逻辑是魔改的TEA:

Exp:


#include <stdio.h>
#include <stdint.h>
 
void TEA_decrypt(uint32_t* enc, uint32_t* key);
 
int main() {
    unsigned int enc[] = { 0xBC2B4DF9, 0x6213DD13, 0x89FFFCC9, 0x0FC94F7D, 0x526D1D63, 0xE341FD50, 0x97287633, 0x6BF93638, 0x83143990, 0x1F2CE22C };
    unsigned int key[] = { 0x12345678, 0x09101112, 0x13141516, 0x15161718 };
    for (size_t i = 9; i >= 2; i -= 2)
    {
        enc[i] ^= enc[1];
        enc[i - 1] ^= enc[0];
        TEA_decrypt(enc, key);
    }
    TEA_decrypt(enc, key);
 
    printf("%s", enc);
}
 
void TEA_decrypt(uint32_t* enc, uint32_t* key)
{
    uint32_t v0 = enc[0], v1 = enc[1], i;
    uint32_t delta = 0x9e3779b9;
    uint32_t sum = delta * 16;
    uint32_t k0 = key[0], k1 = key[1], k2 = key[2], k3 = key[3];
    for (i = 0; i < 16; i++)
    {
        sum -= delta;
        v1 -= ((v0 << 4) + k2) ^ (v0 + sum) ^ ((v0 >> 5) + k3);
        v0 -= ((v1 << 4) + k0) ^ (v1 + sum) ^ ((v1 >> 5) + k1);
 
    }
    enc[0] = v0;
    enc[1] = v1;
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇