Reverse Engineering DAY_012 Crackme6.exe, Crackme7.exe, 어셈블리 변조하기, 어셈블리 코드 분석, assembly code 분석, 레지스터, Register, 어셈블리어 명령어, Reversing Engineering, 리버싱 엔지니어링 기초

2024. 3. 1. 14:45Information Security 정보보안/Reverse Engineering 리버스 엔지니어링

728x90

배울내용:

Crackme6.exe

Crackme7.exe

어셈블리 변조하기 

어셈블리 코드 분석

assembly code 분석

레지스터

Register 

어셈블리어 명령어 

Reversing Engineering 

리버싱 엔지니어링 기초

 

 

 

 

Crackme06.exe 파일 분석하기  

 

 

우리가 여태까지 성공메세지까지는 가기가 쉬웠다 

Crackme06.exe 도 이전에 배웠던 방식과 똑같이 하게 되면 

 

 

 

이렇게 틀린 비밀번호를 쳐도 성공메세지를 뛰울수가있다

 

그러면 비밀번호가 도데체 어디에있을까?

 

 

 

이부분을 보면 LEA EAX, [EBP-4] 를 받게 되고 

그값이 결국 7F97E56C  라는 값하고 비교한뒤에 같으면 성공메세지를 뛰우는거고

실패하면 실패메세지로 보내게든다  그러면 7F97E56C 를 그냥 프로그래머용 계산기로 확인해보면

 

 

 

 

 

이값이 10 진수로 바꾸게 되면 2140661100 이란걸 알수있다 

그리고 기존에 실행파일을 실행시키고 비밀번호를 넣으면 

 

 

 

이렇게 비밀번호를 성공적으로 변조없이 성공메시지를 뛰울수가있다

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Crackme07.exe 파일 분석하기  

 

 

Crackme07.exe를 실행했을때 위와같은 창이뜨고 이름과 Serial 을 넣고 Check 를 하면 성공메세지를 뛰워주는것 같다 

 

 

 

 

 

 

 

이번에도 기존에 똑같은 방법으로 성공메세지를 뛰우려고했으나

이번 문제에는 search for >> All referenced text string 에 아래처럼 아무것도 안보이게 된다 

 

 

 

 

그러면 이번엔 search for >> intermoduler calls 에서 함수로 비교하는걸 찾아보자 

 

 

 

성공메세지를 뛰울려면 어떤값을 확인해야하기떄문에 비교를 할것이다 그러면

cmp (compare) 라는 단어가 들어간 함수를 찾으면 뭔가있을것같다.

다행히도 1개의 vbaVarCmpEq 라는게 있고  Initial CPU selection 이 실행되는듯하다 

 

 

 

 

그부분에 F2 로 Breakpoint로 잡고 한번실행해본다 

 

 

 

 

그럼당연히 여기에서 멈추는데 이 함수가 실행하기전에 ECX 에 어떤값이 들어오고 그값이 레지스터에도

보인다 그값이 "41504641" 라는걸 알수있고 그다음에 vbaVarCmpEq 함수가 실행되는걸로봐 뭔가 관련있을것같다

 

 

 

 

한번다시  실행해서 Serial에 저값을 넣어보면

 

 

 

이렇게 Registered! 라는문구가뜨면서 성공한 메세지가 뜨는것 같다.

아마 Name에 다른값을 넣어도 Serial이 바뀌는것같다

 

꼭 정답이 41504641 이 아니니 Name 따라 Serial이 틀려지니 Name에 맞게 Serial 값을 넣어주면 될것같다 

728x90