首页 > 其他分享 >Reverse|[ACTF新生赛2020]easyre

Reverse|[ACTF新生赛2020]easyre

时间:2023-05-06 14:12:28浏览次数:33  
标签:Reverse esp int v4 easyre char start ebp 2020

DiE查询发现是UPX加壳,使用工具拆壳

./upx -d file.exe

32位程序使用ida32打开
找到关键代码

int __cdecl main(int argc, const char **argv, const char **envp)
{
  char v4; // [esp+12h] [ebp-2Eh]
  char v5; // [esp+13h] [ebp-2Dh]
  char v6; // [esp+14h] [ebp-2Ch]
  char v7; // [esp+15h] [ebp-2Bh]
  char v8; // [esp+16h] [ebp-2Ah]
  char v9; // [esp+17h] [ebp-29h]
  char v10; // [esp+18h] [ebp-28h]
  char v11; // [esp+19h] [ebp-27h]
  char v12; // [esp+1Ah] [ebp-26h]
  char v13; // [esp+1Bh] [ebp-25h]
  char v14; // [esp+1Ch] [ebp-24h]
  char v15; // [esp+1Dh] [ebp-23h]
  int v16; // [esp+1Eh] [ebp-22h]
  int v17; // [esp+22h] [ebp-1Eh]
  int v18; // [esp+26h] [ebp-1Ah]
  __int16 v19; // [esp+2Ah] [ebp-16h]
  char v20; // [esp+2Ch] [ebp-14h]
  char v21; // [esp+2Dh] [ebp-13h]
  char v22; // [esp+2Eh] [ebp-12h]
  int v23; // [esp+2Fh] [ebp-11h]
  int v24; // [esp+33h] [ebp-Dh]
  int v25; // [esp+37h] [ebp-9h]
  char v26; // [esp+3Bh] [ebp-5h]
  int i; // [esp+3Ch] [ebp-4h]

  __main();
  v4 = '*';
  v5 = 'F';
  v6 = '\'';
  v7 = '"';
  v8 = 'N';
  v9 = ',';
  v10 = '"';
  v11 = '(';
  v12 = 'I';
  v13 = '?';
  v14 = '+';
  v15 = '@';
  printf("Please input:");
  scanf("%s", &v19);
  if ( (_BYTE)v19 != 'A' || HIBYTE(v19) != 'C' || v20 != 'T' || v21 != 'F' || v22 != '{' || v26 != '}' )
    return 0;
  v16 = v23;
  v17 = v24;
  v18 = v25;
  for ( i = 0; i <= 11; ++i )
  {
    if ( *(&v4 + i) != _data_start__[*((char *)&v16 + i) - 1] )
      return 0;
  }
  printf("You are correct!");
  return 0;
}

分析

if ( (&v4 + i) != data_start_[((char *)&v16 + i) - 1] )
即:v4[i]!=data_start[flag[i]-1],所以需要v4[i]=data_start[flag[i]-1]
v4[i]=data_start[x] ==> flag[i]-1=x
根据v4的值可以得到data_start的下标,根据下标得到flag的值

v4 = [42,70,39,34,78,44,34,40,73,63,43,64]
model = r"}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)(" + chr(0x27) + r'&%$# !"'
pos = []

for i in v4:
    pos.append(model.find(chr(i))+1)
s = [chr(i + 1) for i in pos]
flag = ''.join(s)
print ('flag{'+flag+'}')
flag{U9X_1S_W6@T?}

标签:Reverse,esp,int,v4,easyre,char,start,ebp,2020
From: https://www.cnblogs.com/scarecr0w7/p/17377095.html

相关文章

  • Reverse|[GWCTF 2019]pyre
    pyc文件反编译uncompyle6-opcat.pyattachment.pycpcat.py#uncompyle6version3.8.0#Pythonbytecode2.7(62211)#Decompiledfrom:Python3.10.6(main,Aug302022,04:58:14)[Clang13.1.6(clang-1316.0.21.2.5)]#Embeddedfilename:encode.py#Compiled......
  • Reverse|Buuctf 简单注册器
    反编译apk文件,搜索flag找到关键代码publicvoidonClick(Viewparam1View){byteb=1;Stringstr=editview.getText().toString();if(str.length()!=32||str.charAt(31)!='a'||str.charAt(1)!='b'||str.ch......
  • [ACTF新生赛2020]usualCrypt 1
    日常查壳:32位,运行看看:(有点嚣张,但不多),任意输入退出。进IDA看主函数:进入主函数后,首先是读入一个字符串,然后是对该字符串进行sub_401080方法加密,最后是对比。那么我们跟进方法,看看是什么加密类型:第一眼下去还多了一个方法sub_401000(),跟进看看:不多说,检查这两的内存:可以......
  • [WUSTCTF2020]level2 1
    查壳:32位,有个小壳,怎么办,脱了呗,还能这么办(方法见前文)https://www.cnblogs.com/TFOREVERY/p/17366210.html脱壳后,进入IDA找主函数:脸上就是flag{Just_upx_-d}收工。......
  • [MRCTF2020]Transform 1
    查壳:64位,先看看运行有问题吗:任意输入给你弹了一个wrong进IDA看看:解释:输入一个字符串,要满足字符串的长度为33,不然就报错。接下来是在输入的字符串中拿出特定的字符,进行异或后得到一个新的字符串,最后与特定的字符串对比。这样看来,我们先看要对比的字符串:还不短,但是我们只......
  • 2020ICPC南京J
    以前没写过势能线段树,然后错了114514个地方,我有罪。#include<bits/stdc++.h>usingnamespacestd;constintN=200013;inta[N];structsegtree{#definemid((l+r)>>1)#definelsx<<1,l,mid#definersx<<1|1,mid+1,r#definelctr[x<<1]#definerct......
  • [2019红帽杯]easyRE 1
    查壳:64位,进IDA找主函数:挺长的,慢慢来吧,先找正确的判断输出:涉及到了v11,又涉及到到方法sub_400E44,跟进方法看看:出现位运算,和aAbcdefghijklmn,跟进看看:标准base64编码,那就是说v11是根据v18base64加密了10次得到的,我们再看看,sub_400360的另一个参数off_6CC090,跟进:拿这个去解密......
  • 20201230张国强实验三
    免杀原理1.基础问题回答杀软是如何检测出恶意代码的?基于特征码的静态扫描技术在文件中寻找特定的十六进制字符串,如果找到,就可判定文件感染了某种病毒。启发式杀毒技术病毒要达到感染和破坏的目的,通常的行为都会有一定的行为和特征,所以可以通过分析相关的病毒指令,判......
  • diamond makedb --in CAZyDB.07312020.fa --db CAZyDB.07312020
    这条语句是在使用diamond软件建立基于cazydb.07312020.fasta文件的数据库,该数据库将用于宏基因组分析中。cazydb是一个专门用于碳水化合物活性酶的数据库。diamond软件则是一款快速而准确的搜索工具,可用于比对大规模的dna或蛋白质序列数据。通过此命令建立的数......
  • 网络对抗实验六 MSF应用基础--20201313
    《网络对抗技术》——Exp6MSF应用基础目录《网络对抗技术》——Exp6MSF应用基础一、实践内容二、问题回答三、实践过程实验准备:1、一个主动攻击实践ms08_067_netapi2、一个针对浏览器的攻击ms10_018_ie_behaviors3、一个针对客户端的攻击Wireshark4、成功应用一个辅助模块sniff......