ReW_p

经典exe


在这里插入图片描述
v18是我们输入的;v5是那一串带点的;v0是我们输入的字符串长度;
看函数sub_4116c7:
在这里插入图片描述
每三个一组,取前六位、取后两位、取前两位,和0x30、f、3f进行与操作。这么熟悉的操作,想起了base64加密。再看看加密字符串:

在这里插入图片描述
能够确定,是base64加密
然后往下看
v1是加密后字符串的长度;
然后进入函数sub_411389:
在这里插入图片描述
依旧是加密,只不过表的最后两位给换了。
往下看函数sub_411023:
在这里插入图片描述
就是给加密后的字符串加点,加到第一位:a2的第一位是点,然后a2的第二位是a1的第一位,然后依次换位。
接下来的函数也是加点,只不过加到了第22位上
接下来的函数运用的是爆破思想:
个人理解:首先是可见字符串的ASCII码值,x代表ASCII码值,a代表数组1,b代表数组2,c代表数组3
如果a的第一位的x对应b的第一位,那么就让c的第一位赋值为x
脚本:

int main()
{
    char Str[100];
    int a[100];
    char a1[]=".W1BqthGbfGBqoXBmVZRQd.W5VoXNJcMR6XNBxoM5FoFDucMWyWNfBpXNAoF0.";
    int a2 = 2;
    int len = strlen(a1);
     for ( int i = 0;i<len ; i++ )
  {
      for(int j = 0;j < 128;j++){
            a[i] = j;
    if ( a[i] < 65 || a[i] > 90 )//如果a[i]的值小于65或者大于90进去继续
    {
      if ( a[i] >= 97 && a[i] <= 122 )//如果值在(97,122)之间正好是25小于26,那么ASCII值加上97,变成大写的26个字母其中之一
        a[i] = (a[i] + a2 - 97) % 26 + 97;
    }
    else
    {
      a[i] = (a[i] + a2 - 65) % 26 + 65;//如果值在(65,90)之间正好是25小于26,那么ASCII值加上65,变成小写的26个字母其中之一
    }
    if((char)a[i] == a1[i]){
        Str[i] = j;
    }
  }
  }
  for(int i = 0;i<len;i++){
  printf("%c",Str[i]);
  }
  return 0;
}

在这里插入图片描述

解出来的字符串去点然后进行两次的base64解密即可

经典base

在这里插入图片描述
查看伪代码,我们发现有一个base58加密(Base58 采用数字、大写字母、小写字母,去除歧义字符 0(零)、O(大写字母 O)、I(大写字母i)、l(小写字母L),总计58个字符作为编码的字母表也就是:123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz)
那我们直接用icyberchef:
在这里插入图片描述
从base58转换为字符串

经典re1

用x64dbg打开之后,运行,然后右键>搜索>当前区域>字符串,然后ctrl+f搜索flag找到
在这里插入图片描述

经典re2

用ida打开
在这里插入图片描述
首先我们输入v7,然后将v7的值赋给v10,然后进入while循环,过程是把v7的值每一个都与7异或,然后退出循环,如果v8和那个unk函数里的值一样就是yes
那么我们要做的就是找到unk函数里的值,然后再每个值异或7即可
然后进入unk函数
在这里插入图片描述
发现什么都没有,这需要动态调试了,unk的值应该是程序运行到某个地方然后才会跑出来值
关于ida的动调:首先找一个合适的调试器
在这里插入图片描述
然后文件目录下找到dbgsrv
在这里插入图片描述
我们用的是64位的
在这里插入图片描述
把端口、ip填进去
在这里插入图片描述
开始调试
在这里插入图片描述
在这里插入图片描述
找到这一串字符串,发现是他们进入到unk函数里
在ida里面,进入unk函数
在这里插入图片描述
可以发现mov了很多值进入函数里,我们用f5查看代码
在这里插入图片描述
在这里插入图片描述
但不造我为啥后面没有字符串。。。。。
然后写一个简简单单的脚本得到flag
在这里插入图片描述

squid

放到linux里面运行
在这里插入图片描述
拉入ida,shift+f12查看字符串,发现有很多py开头的
在这里插入图片描述
意味着是一个python文件被打包成了exe文件
用pyinstxtractor.py文件
通过readme.txt获得使用方法
在这里插入图片描述

在这里插入图片描述
成功解包
在这里插入图片描述
捣鼓了半天,根据cmd里面的提示发现,说是要用python3.6去解包,于是我把python版本改为3.6,然后解包,PYZ-00.pyz_extracted文件夹里才有东西了。
之后把struct里面的文件头给pyc补充上,然后放到在线python反编译得到
在这里插入图片描述
打开PCcharm运行得到
在这里插入图片描述

cheems

先查壳
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
ida里面也找不到字符串和函数
然后可以看到是upx
在这里插入图片描述
但放到010发现是cpx,怪了,手动改改
在这里插入图片描述
可以了
然后ida找字符串
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值