CrackMe Crackme ?/10 c++ get password or patch

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
2 Июн 2021
Сообщения
80
Реакции
1
Objective: Find the correct password or patch the program.
Difficulty: ?/10
Features:
  • Simple anti-debugging protection
  • Basic code obfuscation
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Последнее редактирование:
Objective: Find the correct password or patch the program.
Difficulty: ?/10
Features:
  • Simple anti-debugging protection
  • Basic code obfuscation
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
софт не запускается, ты в статике собери его или дллки там приложи не знаю
 
/MT build type & static library
 
/del перезалью, не то залил
 
Upd: файл перерендерил ссылки заменил, все работает, трайте, кто сделает решение под хайд скиньте, старался чего-нибудь интересного накатить туда
 
photo_2025-04-30_03-44-15.jpg



оценка защиты: 1/10, чудеса не сбылись, интегрити чек с анти дебагом не работают
 
а кде обфускация я чет не увидел

1746004789957.png


1746004827062.png
 
Оценка: 1/10
Password: litenergy
Crackme писал вайб кодер, ибо других объяснений у меня нет.
Кривой антидебаг который обходится nop'ом, кривая обфускация, которая не работает, пароль хранится прямо в бинарнике, не почищена дебаг информация после компиляции.
Очень удивила попытка сломать дебаггер рандомными байтами, может лет 15 назад оно и работало, но сейчас это вызывает смех
Форматирование (BB-код):
Expand Collapse Copy
; unsigned __int64 antiDisassembly()
public _Z15antiDisassemblyv
_Z15antiDisassemblyv proc near

var_20= qword ptr -20h
var_18= qword ptr -18h
var_10= byte ptr -10h

push    rbp
mov     rbp, rsp
sub     rsp, 30h
mov     rax, 0EBFBEB0004E8FFEBh
mov     [rbp+var_20], rax
mov     rax, 90FFFFFEEBFDEBFCh
mov     [rbp+var_18], rax
mov     [rbp+var_10], 90h
nop
add     rsp, 30h
pop     rbp
retn
_Z15antiDisassemblyv endp

1746016833117.png
Форматирование (BB-код):
Expand Collapse Copy
__int64 __fastcall verifyCodeIntegrity()
{
  __int64 v0; // rbx
  _QWORD *v1; // rax
  _QWORD v3[6]; // [rsp+0h] [rbp-70h] BYREF
  _BYTE v4[39]; // [rsp+30h] [rbp-40h] BYREF
  char v5; // [rsp+57h] [rbp-19h] BYREF
  char *v6; // [rsp+58h] [rbp-18h]
  unsigned __int64 i; // [rsp+60h] [rbp-10h]
  __int64 v8; // [rsp+68h] [rbp-8h]

  v6 = (char *)&v3[10] + 7;
  v3[4] = &C_6_0;
  v3[5] = 3;
  std::vector<unsigned long long>::vector(&v3[6], &v3[4], v6);
  std::__new_allocator<unsigned long long>::~__new_allocator(&v5);
  v8 = 0;
  for ( i = 0; i < 3; ++i )
  {
    v0 = *(_QWORD *)std::array<unsigned long long,3ull>::operator[](&verifyCodeIntegrity(void)::CODE_FINGERPRINTS, i);
    v1 = (_QWORD *)std::vector<unsigned long long>::operator[](v4, i);
    v8 ^= v0 ^ *v1;
  }
  LOBYTE(v0) = v8 == 0;
  std::vector<unsigned long long>::~vector(v4);
  return (unsigned int)v0;
}

 
Последнее редактирование:
Назад
Сверху Снизу