Search

[CodeEngine] Basic RCE L16

Tags
reversing
Category
CodeEngn
Last Edited time
2022/01/07 12:50
Visibility
Public

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, " =/"); }
C
복사
Name을 기준으로 시리얼 키 값이 생성된다. 생성로직도 간단할 뿐더더러 사실 모르더라도 동적디버깅으로 CodeEngn 이름으로 생성된 키값만 확인하여 그에 맞는 비번을 입력하면 된다

3. 풀이

CodeEngn ⇒ 0xE4C60D97 로 생성됨. 이를 10진수로 입력하면 끝이다

4. 몰랐던 개념