블로그 이미지
ludwings

카테고리

분류 전체보기 (130)
WIN API (22)
워게임 (61)
만든것 (2)
메모 (37)
Total18,086
Today0
Yesterday3

'Reverse engineering'에 해당되는 글 1건

  1. 2013.11.27 CodeEngn Advance RCE L14

4e 91 43
48 8d 45
20 52  32


CodeEngn Advance REC 14


14
Serial : NH6-0-0091008D0052 일때 Name은 무엇인가

이 문제는 키값을 만들기는 쉬운데 중간중간에 분석을 어렵게 하는 쓸데없는 코드들이 많았다.

먼저 인증이 성공했을 시 출력해주는 문자열인 "Registered Successfully" 을 찾고 위쪽에서부터 실행하다보면

name 을 이용해 만든 serial 과 입력한 serial 값을 비교하는 함수가 있고

그 바로 위에 함수인 CALL 00404bb8 에서 Serial 을 만들어 낸다는 것을 알수있다.

 

 


그 함수로 따라들어가서 분석해보면

키값을 만드는 과정은

name을 반복해서 적은 후에

name을 12글자로 만들어준다..

ex)
name : ludwings 라면

ludwingsludwings 로 만든후
ludwingsludw       으로 잘라낸다.

그 후에,
NH KeyGenMe6     과 1글자씩 값을 더해 앞에 00을 붙인다..

ex)
ludwingsludw
NH KeyGenMe6

l 의 아스키코드가 0x01
N의 아스키코드가 0x11이라면
"0012" 로,

u가 0x02
H가 0x22면
"0024"로

d가 0x03..... 생략..

이걸 12문자에대해 다 수행하고 합쳐준다

"0012002400~~~~"

그리고 앞에 12글자만 잘라내면 된다.

즉, 제일앞의 3글자만 시리얼을 만드는데 사용된다는 것이다.

그렇다면 문제에서 Serial은 NH6-0-0091008D0052  였고

0091008D0052 에서 역연산 해주면된다..

N : 0x4e
H : 0x48
' ': 0x20

이고 이 값들을 각각 0x91, 0x8d, 0x52에서 빼주면 정답이 되겠다.

4e - 91 = 43
48 - 8d = 45
20 - 52 = 32

 

 

'워게임 > 리버스엔지니어링' 카테고리의 다른 글

reversing.kr] crc  (1) 2014.07.09
CodeEngn Advance RCE L14  (0) 2013.11.27
codeengn advance rce l11 풀이  (0) 2013.11.25
codeengn advance rce l15 풀이  (0) 2013.11.22
codeengn advance rce l10 풀이  (0) 2013.11.21
섹션 합치기 & 섹션 추가  (2) 2013.10.31
Posted by ludwings

댓글을 달아 주세요

최근에 달린 댓글

최근에 받은 트랙백

글 보관함