Reversing
-
-
Lena tutorial-18Reversing 2022. 9. 3. 20:10
1. 프로그램 실행 시 나타나는 nag창을 제거하는 것이 이번 장의 목표다. 2. 프로그램 실행 후 가장 먼저 실행되는 사용자 함수(0040130F)에 진입한다. 3. 00401000부터 BeginPaint의 address(00401218)까지 (jumptable 시작 부분) xor 연산을 통해 코드를 변환하고 있음을 확인한다 4. 0040130F 함수가 실행된 이후 복호화 된 코드를 확인한다. 5. 사용자 함수(00401011)에 진입한다. (복호화 된 영역) 6. mov 명령어를 이용해 00401011부터 0040104A까지 코드를 재구성하고 있음을 확인한다 7. 00401052까지 코드를 실행 후 재구성된 코드를 확인한다. 8. call edi(00401000)에 진입해 00403000부터 0040..
-
Lena tutorial-01Reversing 2022. 9. 3. 19:40
1. 프로그램 실행 후 평가기간 만료로 새로운 라이센스가 필요함을 확인한다. 2. Keyfile.dat 파일에 접근후 핸들을 얻을 수 없다면 INVALID_HANDLE_VALUE 반환 후 평가기간 만료 메시지를 출력함을 확인한다. 3. Keyfile.dat의 핸들을 통해 데이터를 70byte 읽어온 후 lpBuffer에 값을 저장한다 4. lpBuffer의 값을 한 바이트씩 읽어와 0을 읽어들이기 전까지의 G(ascii 71)의 개수를 확인한다. 그리고 G의 개수가 8개일 경우 정상 인증 로직(00401205)으로 분기하는 것을 확인한다 5. 적절한 Keyfile.dat를 생성해 인증에 성공한다