crackme

Peach’s Crackme

1.png
程序简介,一个简单的注册功能
3.png

首先x64dbg分析一下,根据程序功能找找字符串啥的
4.png
IDA静态分析,来定位一下地址啥的,然后f5大法直接读伪代码
5.png

sub_4081C0("%d\n", v4);
v5 = sub_401A94(String);
if ( v5 == atoi(v7) )
MessageBoxW(a1, L"You are such a gud boi! Lemme pat you!", L"Good boi!", 0);

最终定位到这个地方
主要分析一下v5和v7都是啥,通过ida的万能x引用大法,追踪到一个win32函数,查手册把功能和参数给搞清楚就ok了
2.png

最终发现v5是注册时的名字,v7是我们输入的序列号,二者之间通过一个函数来处理,本地运行一下函数就行了,直接出序列号

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

int main()
{
int i; // [rsp+58h] [rbp-28h]
int v3; // [rsp+5Ch] [rbp-24h]
char a1[] = "Alex";
v3 = 1;
for ( i = 0; i < strlen(a1); ++i )
v3 += a1[i];
printf("%d\n",(unsigned int)((431136 * v3 - 3000) / 2 - *a1));
}

6.png

WarGames

  • level : 2
  • Platform : Unix/linux etc.
  • Description : Use ./WarGames pass

太简单了,把他的算法跑一遍就把结果出来了

文章作者: Alex
文章链接: http://example.com/2021/03/23/crackme1/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Alex's blog~