728x90
1. 문제
키젠 문제
2. 접근방법
v5 = (_DWORD *)std::operator>><char>(&std::cin, v14);
if ( std::ios::operator void *((char *)v5 + *(_DWORD *)(*v5 - 12)) )
{
++v16;
v7 = std::string::length((std::string *)v14);
if ( v7 > v15 )
v15 = std::string::length((std::string *)v14);
v13 = 12 * v15 * 12 * v15 * 12 * v15 + 23;
std::operator<<<std::char_traits<char>>((int)&std::cout, " Enter your Password: ");
std::istream::operator>>(&std::cin, &password);
v13 *= 0xACE81;
if ( password == v13 )
{
v8 = GetStdHandle(0xFFFFFFF5);
SetConsoleTextAttribute(v8, 0xAu);
std::ostream::operator<<(&std::cout, std::endl<char,std::char_traits<char>>);
std::operator<<<std::char_traits<char>>((int)&std::cout, " Good Job!\n");
std::operator<<<std::char_traits<char>>((int)&std::cout, " =)");
}
else
{
v10 = GetStdHandle(0xFFFFFFF5);
SetConsoleTextAttribute(v10, 0xCu);
std::ostream::operator<<(&std::cout, std::endl<char,std::char_traits<char>>);
std::operator<<<std::char_traits<char>>((int)&std::cout, " Wrong password!\n");
std::operator<<<std::char_traits<char>>((int)&std::cout, " =/");
}
Name을 기준으로 시리얼 키 값이 생성된다. 생성로직도 간단할 뿐더더러 사실 모르더라도 동적디버깅으로 CodeEngn 이름으로 생성된 키값만 확인하여 그에 맞는 비번을 입력하면 된다
3. 풀이
CodeEngn ⇒ 0xE4C60D97 로 생성됨. 이를 10진수로 입력하면 끝이다
4. 몰랐던 개념
728x90
'워게임 > CodeEngn' 카테고리의 다른 글
[CodeEngine] Basic RCE L18 (0) | 2021.01.12 |
---|---|
[CodeEngine] Basic RCE L17 (0) | 2021.01.11 |
[CodeEngine] Basic RCE L14 (0) | 2021.01.02 |
[CodeEngine] Basic RCE L15 (0) | 2021.01.02 |
[CodeEngine] Basic RCE L09 (0) | 2020.12.29 |
Uploaded by Notion2Tistory v1.1.0