보안/악성코드
[레나 튜토리얼] 39
Seongjun_You
2022. 3. 31. 17:07
오늘의 목적은 패킹된 dll파일의 CRC우회이다.
registration successful을 해야 한다.
user code로 쉽게 찾을 수 있었다.
위쪽에 보면 BlowFish암호화 함수를 진행하고 atoi함수를 진행한 다음
분기문에 따라 성공 문자열을 볼 수 있다.
시리얼 번호를 1234로 입력하고
암호화 함수를 진행한 다음 값을 보면 0x1이 들어있다.
이 값을 atoi인자로 진행한다는 건데
atoi의 범위 들지 않아 실행하지 않을 것이다.
값을 0x31 0x32 0x33 0x34로 바꾸어주었다.
ascii로 1234이다.
성공 문자열을 볼 수 있지만
라이센스 검증 루틴이 여러 개 있는듯했다.
그래서 암호화 함수에서 우회를 진행해야 한다.
암호화 함수의 코드를 바꾸어 주었다.
0x31323334 값을 넣어주고 ret 하게 바꾸었다.
잘 실행이 되기에 해당 바이트 값을 메모장에 적어둔다.
이제 근본적인 문제를 해결하기 위해
dll파일을 패치해야 한다.
dll파일이 있는 위치를 찾아준다.
해당 파일의 패커를 확인해보았다.
다행히 내가 많이 해보았던 패커이다.
0x100471c8로 이동하여 jmp eax에 bp를 건다.
oep로 진입하기 전 암호화 함수를 패치를 하고 진입해준다.
실행해보니 인증받은 버전으로 잘 된다.