Reverse Engineering DAY_016 Crackme16_2.exe, Crackme16_2_unpacked.exe, 어셈블리 변조하기, 어셈블리 코드 분석, assembly code 분석, 어셈블리어 명령어, Reversing Engineering , 리버싱 엔지니어링 기초

2024. 3. 5. 22:23Information Security 정보보안/Reverse Engineering 리버스 엔지니어링

728x90

배울내용:

Crackme16_2.exe

Crackme16_2_unpacked.exe

어셈블리 변조하기 

어셈블리 코드 분석

assembly code 분석 

어셈블리어 명령어 

Reversing Engineering 

리버싱 엔지니어링 기초

 

 

 

 

 

 

 

 

 

 

 

 

Crackme16_2.exe 파일 분석하기

 

 

 

이번에는 위와같은 16_2 파일을 분석해볼것이다 

 

 

 

 

 

 

당연히 아무 이름이나 비번입력하면 Wrong password! 라고 뜨는걸 볼수있다

search for >> All referenced text strings  로 성공메세지를 확인 보면 아래와 같다 

 

 

 

Good Job =)  부분을 더블클릭해 뒤로 가보면 

 

 

 

 

이부분에서 CMP 한뒤에 JMZ 해서 성공과 실패 메세지로 나뉜다

그럼 여기에 있는 EAX 값을 보면되는데 다시 ID 와 PW 를 입력해주자

 

 

 

 

 

 

 

Name 을 abcd 로 , Password를 1234 로해서 보자 

당연히 안되지만 JMP 를 잘하면 아래처럼 성공메세지를 

뛰울수있다 

 

 

 

 

 

그러나 우리는 password 를 찾자고하면 

 

 

 

abcd 바로 위에 있는게 비밀번호다

그 비밀번호는 3D723D97 이고 이걸 10 진수로 바꾸면 

 

 

 

 

1030897047 이 비밀번호인걸 알수있다 

 

 

 

 

 

 

 

이렇게 성공메세지를 변조하지 않고 password 를 찾아서 뛰울수가 있다 

 

 

 

 

 

 

 

 

 

 

Crackme16_2_unpacked.exe 파일 분석하기

 

이번에는 PEID 라는 프로그램으로 unpacking 시켜야 OllyDBG에 올려서 제대로 볼수가있다

(packing 되어있으면 정보가 대부분 숨겨져있음) 

 

 

 

 

 

그렇게 되면 Borland Delphi 4.0 - 5.0 이 나오는걸 볼수있는데 

옛날에 Visual studio 나올때 같이 나온 유명한 프로그램 이라고 한다 

 

 

 

 

OllyDBG로 돌아와  실행하면 아래와 같은 전자기기 처럼생긴 그림이 나온다 

 

 

 

 

이것 저것 버튼 클릭하면 생기는 이벤트가 있을것같다서 이것저것 다 클릭해본다 

 

 

 

 

 

그러면 왼쪽아래에 연두색 버튼을 클릭하면 위와 같이 뜬다 

그리고 딱히 다른기능을 별로 없다 

 

 

 

 

 

 

 

text 를 확인해보면 Label1.caption 부문에 엄청긴 ASCII 값이 들어가있는걸 볼수있다 

 

 

 

 

 

 

 

 

 

 

 

이부분에서 F2 (Break Point ) 를 걸고 

이 부분에서 다시 올라가보면 

 

 

 

0045621E 에서 점프를 안 하는걸 볼수가있다 

그러면 이번엔 그냥 점프를 시켜주면

아래처럼 보이게 된다 

 

 

 

 

이때 부터 비밀번호를 입력하면 뭔가를 찾을수있을것 같다 

 

 

 

 

 

 

 

 

비밀번호를 틀리면 옆에처럼 보이게 된다

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

그러면다시 search for >> All referenced text strings  에서 확인해보자 

 

 

 

 

그러면 pig 라는게 보인다 이걸 다시 입력해보자

그래도 실패가 된다

 

 

 

 

 

 

다시 BreakPoint 를 걸고 하나하나 실행해보니 중간에 

 

 

 

 

 

 

1번방향으로 계속 넘어가지 2번으로 넘어가지않아서 한번 JMP 를 줘서 바꿔봤다 

 

 

 

 

 

 

 

 

 

 

그러면 성공적으로 성공메세지를 뛰울수있게된다 

 

이번에는 다른것보다 몇개 트릭이 있었던 것 같다

 

 

 

728x90