'Reversing/abex's'에 해당되는 글 2건

제목 날짜

이번에 풀 문제는 abex의 3번쨰문제인 abex 3 입니다.


http://crackmes.de/users/abex/abex_3/


에서 무료로 다운로드 하실수 있습니다.


올리 디버거로 열어보시면 매우 짫은 어셈블리어로 이루어진 프로그램입니다.




이게 분석할 어셈블리 언어의 끝입니다.



처음에는 keyfile을 체크하라고 나옴니다.


그리고 처음 메세지 박스가 지난뒤에 오는 함수가 CreateFileA입니다.


함수명만 보면 파일을 만드는거 같지만 실제론 파일을 여는 모드를 쓰고 있습니다.


따라서 우리는 key 파일을 만들 어야 합니다.



파일을 만들려면 수동적으로 파일을 만들어도 되지만 


ms사의 문서를 읽어보면 


mode 값을 1또는 2로 변경을 하면 파일을 만들 수 있습니다.

http://msdn.microsoft.com/en-us/library/windows/desktop/aa363858(v=vs.85).aspx





저는 1로 수정을 한뒤에 파일을 저장한후 실행을 해서 파일을 만들었습니다.



그런데 여기서 끝이 아님니다.


GetFileSize라는 함수가 생성된 파일과 비교를 하거든요


그런데 생성된파일은 0kb입니다.


따라서 파일 크기를 수정하거나 비교문을 제거 하는방법이 있습니다.


저는 그냥 비교문을 제거하는 방법으로 가보도록하겟습니다.



이 cmp문은 eax가 12랑 같지 않으면 파일은 있으나 키가 아니라고 메세지박스를뛰움니다.


따라서 eax값이랑 같게 수정하면 됨니다.




저장하시면 다음과같이 뜸니다.




'Reversing > abex's' 카테고리의 다른 글

/users/abex/1) haque_abex1  (0) 2014.06.25
Posted by 준P

안녕하세여 준p입니다.


haque_abex1를 크랙해보겟습니다.



어셈블리 어코드가 적으니 크랙하기에 쉽습니다.


일단 천천히 실행시키다보면 메세지박스가 뜨고 자기를 하드말고 시드롬으로 만들라는것인데요



여기서 중요한건 cmp 입니다 


cmp는 sub와 동일한 역활을 하나 잔짜로 빼자는 안습니다.


eax에서 esi를 뺀값이 0이면 jz를 1로 변환하는데여


cmp밑에 je는 jz가 1이면 해당 주소로 점프를 합니다.


cmp와je는 같이쓰이니 알아두세여



현제 스텍을 보시면 eax 는 3이고 esi는 0입니다.


eax에서 총 2번 1씩을 뺴고 (값이 1이됨니다.)


esi에서 총 3번 1씩 더해주니(값이 3이됨니다)


jmp문을 inc eax로 바꾸어주시면 eax에 1을 두번더해주니 eax가 3이됨니다.


참고로jmp문은 바로 밑으로 점프하므로 의미가 없습니다.


Jmp는 주소를 2칸차지함.


inc는 1을 차지하므로 



이제 실행해보시면 (f9)



크랙에 성공하셧습니다.





'Reversing > abex's' 카테고리의 다른 글

users/abex/3) abex's abex 3  (0) 2014.10.11
Posted by 준P