목록분류 전체보기 (365)

참고자료https://dreamhack.io/learn/11#40 로그인 | Dreamhack dreamhack.io glibc 2.24이상 버전부터 IO_validate_vtable이 추가되어 vtable을 검사한다. IO_validate_vtable 함수가 _libc_IO_vtables의 섹션 크기를 계산한 후 파일 함수가 호출될 때 참조하는 vtable 주소가 _libc_IO_vtables 영역에 존재하는지 검증한다. 만약 vtable 주소가 _libc_IO_vtables 영역에 존재하지 않는다면 IO_vtable_check 함수를 호출하여 포인터를 추가로 확인한다. IO_validate_vtable 함수로 인해 파일 함수의 vtable은 _libc_IO_vtables 섹션에 존재해야 호출할 수 있..

프로그램 두 개 중 하나이다. nag를 제거하고 regcode를 알아내야 한다. VB 디컴파일러를 이용한다. nag를 눌러 주소를 알아냈다. 시작하자마자 ret을 넣어 동작하지 않게 만들었다. register me의 주소도 알아내어 디버깅 중 의심 가는 문자열이 있다. regcode에 입력하니 성공 했다. 이제 두 번째 프로그램을 크랙을 한다. vb디컴파일러를 이용하여 주소를 찾아낸다. reginfo.key 파일이 있어야 한다. 바로 만들어 주었다. VEOVEO를 이용해 버튼을 활성화하여 눌러주었더니 register 되었다. 이렇게 레나 튜토리얼 무료 버전이 종료되었다. 이후는 유료로 진행된다. 레나 튜토리얼의 포스팅은 이번이 마지막이다.

해당 프로그램의 정품키를 찾아보도록 한다. VB코드로 만들어진 프로그램이다. Ctrl + n으로 import된 함수들을 보았다. 문자열 구문 비교 함수를 찾도록 한다. 찾고 bp를 걸어준다. bp를 걸고 실행중 의심이가는 문자열이 있다. 입력하니 라이센스가 통과되었다.

artgem을 크랙 해야 한다. register 진행시 오류 문구가 나온다 해당 문자열을 사용하는 주소를 찾는다. 위쪽에 조건문이 있다. 이 부분이 라이센스 루틴이다. info 하여 분석한다. 해당 프로그램은 지속적으로 루틴을 검사한다. 아래쪽에 xor eax, eax를 nop으로 바꾸어 준다. 우리가 입력한 key값이 통과될 것이다.

해당 프로그램을 정품으로 크랙 한다. 이메일과 라이선스 넘버를 기입할 시 오류가 난다 오류 문구를 이용해서 해당 주소를 찾아본다. 아래쪽에 정품인증 문구가 있다. 조건문을 찾도록 한다. 함수 호출로 나온 EAX값을 TEST로 비교한다. F7로 info 하여 확인했다. 끝에 쪽에 AL에 값을 넣는 코드를 이용해 1로 넣어주었다. 이제 프로그램을 다시 실행해 본다. 정품 버전으로 크랙을 성공했다.

pc surgeon을 정품 버전으로 크랙 하면 된다. 옛날 초등학생때 사용했던 프로그램인데 반가웠다. 먼저 text기반으로 주소들을 찾았다. 그 위쪽에 조건문을 발견했다. 0이 아니면은 JNZ를 통해 이동한다. 그 후 또 조건문이 나오는데 0이 아니면 남은 기간을 표시해주는 문자열을 피한다. 두 개의 조건문 모두 JMP로 바꾸고 실행해 보았다. 문자열은 바뀌어있다. 하지만 문자열만 바꾸었을뿐 정품인증은 되지 않았다. 이번에도 문자열을 통해 해당 주소를 찾았다. 조건문이 하나 있는데 처음 사진에 올라갔던 조건문과 참조하는 변수의 주소가 같았다. 일단 이 조건문도 JMP로 변환하여 실행했다. 정품인증이 되었다. 더 쉬운 방법은 0x610c4a에 값을 넣으면 된다.

이번에도 옛날에 사용했던 프로그램을 크랙 한다. 무료 버전은 10번만 사용할 수 있다. 아래 Number of trials left:10이 10번을 사용하면 프로그램을 사용할 수 없게 된다. 잡다한 기능들이 있다. 종료하면 광고가 나온다. 이제 저 10번의 카운트를 없애고, 광고도 없애는 작업을 진행한다. 프로그램 화면이 나오는 곳에 bp를 걸고 함수 안으로 info 하면서 추적한다. 하드웨어 영역은 bp를 따로 걸어 준다. 0x4898e7에서 남은 횟수를 체크한다. EDI+E0은 시리얼 넘버? 인듯하다. 0x4898e1을 jmp로 바꾸어 주어 바로 프로그램을 실행시킬 수 있게 만들어 주었다. 실행하여 호출된 스택을 보면서 찾아가는 게 더 쉽다. 스택을 확인하여 해당 지점이 광고를 호출하는 함수라는 것을..

설치 파일 하나가 들어있다. 이번엔 실제 프로그램을 크랙하는 문제이다. 체험판 프로그램을 크랙하여 회원 유저 처럼 사용할수 있게 만들어 본다. 회원 유저만 그룹을 3개 이상 만들 수 있다. 이 기능도 바꾸어 보도록 한다. 먼저 문자열들을 바꾸기로 했다. 메모리에들어가서 문자열 검색후 unregistered를 registered로 바꾸어 주었다. 잘 바뀌었다. 이제 그룹 기능을 바꾸어 보도록 한다. Executable till user code 로 알림창을 호출한 주소를 찾아 준다. 문자열로 검색해도 된다. CMP EAX, 3이 그룹의 수를 뜻한다. 그 아래 JL을 JMP로 바꾸어 준다. 성공