cool147852369 发表于 2021-3-1 20:33

【2021春节】初级题

发布题目的时候做了一下……感觉还是挺简单的,但是最后凑字符串的那一步没做出来有点可惜。

帖子发的比较少,格式可能有点问题。

0x01 导入OD


似乎有壳,被加密过。PEID 0.2查不出壳,直接丢到哈勃。
0x02 查壳
基本信息
关键行为
进程行为
文件行为
其他行为
基本信息
文件名称:       
CrackMe.exe

MD5:        4b15e259c525a1f39d2ff779d0f10e07
文件类型:        EXE
上传时间:        2021-03-01 19:24:47
出品公司:        N/A
版本:        N/A
壳或编译器信息:        PACKER:UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo
子文件信息:        详情



0x03 运行一下看看
知道是什么壳之后,先不脱,进去看看
随便输点东西看看



返回OD,运行到主程序 查找字符串,没有内容,重载

0x04 字符串
开局ESP定律进入口
查找字符串

中文搜索引擎, 条目 0
地址=00091002
反汇编=push CrackMe.000BAC0C
文本字符串=HappyNewYear

中文搜索引擎, 条目 13
地址=0009214A
反汇编=push CrackMe.000BAC1C
文本字符串=52PoJie

中文搜索引擎, 条目 14
地址=000922AE
反汇编=mov edx,CrackMe.000BAC24
文本字符串=Success


发现以下内容,文本未被加密,就不脱壳好了。

0x05 进入HappyNewYear关键字
内存断点-访问
输入程序后没有停下来,大概率猜测他是密码最后内容

0x06 进入52PoJie关键字
同上


0x07 字典

可能的口令
52PoJie
2021
HappyNewYear


字符串排列组合
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;




namespace ConsoleApplication4
{
    class Program
    {
      static void Main(string[] args)
      {
            const string a = "52PoJie", b = "2021", c = "HappyNewYear";
            Console.WriteLine(a+b+c);
            Console.WriteLine(a+c+b);
            Console.WriteLine(b+a+c);
            Console.WriteLine(b+c+a);
            Console.WriteLine(c+a+b);
            Console.WriteLine(c+b+a);
         
      }

      
      }
    }




去凑凑看吧


moshuiom 发表于 2021-3-1 23:27

{:1_921:} 虽然看不懂,但是顶一下

sdchqf 发表于 2021-3-2 11:09

cool147852369 发表于 2021-3-1 20:40
有一点忘说了,口令是有位数的,在确定两个口令组成部分的时候,就可以计算出剩余长度=4的第三个口令组合块 ...

新手学习,谢谢

cool147852369 发表于 2021-3-1 20:40

有一点忘说了,口令是有位数的,在确定两个口令组成部分的时候,就可以计算出剩余长度=4的第三个口令组合块了

情怀河VIP 发表于 2021-3-2 08:50

感谢楼主,

情怀河VIP 发表于 2021-3-2 08:52

感谢楼主,期待再出精品,已收藏

c_123456 发表于 2021-3-2 09:50

有点东西啊

Hmily 发表于 2021-3-2 09:56

过程感觉多数靠猜,其实你离的很近了,没断下来可以从代码入口的位置进行跟踪,因为长度不够可能就不对比。

wangyuan0558 发表于 2021-3-2 10:38

学习以下思路

soar4038 发表于 2021-3-2 10:43

值得学习学习
页: [1] 2
查看完整版本: 【2021春节】初级题