Name이 CodeEngn 일때 Serial을 구하시오
이전포스팅인
https://imoracle.tistory.com/entry/Reversing-CodeEngn-Basic-RCE-L14
[Reversing] CodeEngn - Basic RCE L14
Name이 CodeEngn 일때 Serial을 구하시오(이 문제는 정답이 여러개 나올 수 있는 문제이며 5개의 숫자로 되어있는 정답을 찾아야함, bruteforce 필요) 라고한다. 브루트포스가 무엇이냐면 무차별 대입
imoracle.tistory.com
https://imoracle.tistory.com/entry/Reversing-CodeEngn-Basic-RCE-L15
[Reversing] CodeEngn - Basic RCE L15
Name이 CodeEngn 일때 Serial을 구하시오라고 한다. 프로그램 실행모습옛날 델파이7을 만지작거릴때의 글꼴이 떠오른다. 그룹박스도 특유의 델파이 느낌이 있다. PEID 로 본결과 패킹은 되어있지 않
imoracle.tistory.com
과 비슷한 문제다.
프로그램 실행모습
패킹은 되어있지 않았고 Dev c++로 작성된 프로그램이다.
IDA 로 보자
IDA의 강력한 기능인 C언어로 변환해 보여주는 기능을 사용했다.
정말 훤히 보인다. 안그래도 c언어로 만들어진 프로그램이니 더욱더
비교 구문이 있다. 이곳이 수상하다
브레이크 포인트를 걸고 살펴보자
eax 에는 100 (hex : 64)이 들어있다. 그렇다면 [ ebp + 3c ] 에 Serial키가 있다는 말이된다.
0070FE70 - 3C = 0070FEEC 로 IDA에서 알려주고있다.
Hex를 보게되면 4바이트인 97 0D C6 E4 가 Serial 키라는걸 알 수 있다.
계산해주면 Serial 은 3838184855 라는걸 알 수 있다.
왜 거꾸로 적어주냐면 리틀엔디언 방식이기 때문,
나중에 자세히 다루겠지만 간략하게 말하자면 빅 엔디언, 리틀엔디언 두 가지 방식이 존재하며,
DWORD a = 0x12345678; 이라면
빅 엔디언 에서는 12 34 56 78 로 저장이 되고
리틀 엔디언 에서는 78 56 34 12 로 저장이 된다.
Intel x86 CPU에서는 리틀 엔디언 방식을 사용하기 때문에 Window계열 리버싱은 리틀 엔디언을 알아야한다.
성공 !
'Reverse Engineering > [CodeEngn] Basic RCE' 카테고리의 다른 글
[Reversing] CodeEngn - Basic RCE L18 (0) | 2024.07.03 |
---|---|
[Reversing] CodeEngn - Basic RCE L17 (0) | 2024.07.03 |
[Reversing] CodeEngn - Basic RCE L15 (0) | 2024.07.02 |
[Reversing] CodeEngn - Basic RCE L14 (0) | 2024.07.02 |
[Reversing] CodeEngn - Basic RCE L13 (0) | 2024.07.02 |