목록wargame/Lena (41)
이번에도 스크립트를 준다 해당 프로그램을 시작하면 알 수 없는 코드로부터 시작되는데 IAT테이블을 먼저 확인하도록 했다. ReadFile을 참조하는곳을 분석하기로 했다. 첫 번째로 이동한 후 함수의 시작 부분을 보면 nop 처리되어있다. 재시작하면 원래 코드가 있었다는 것을 알 수 있다. 일단 해당 주소를 호출하는 곳으로 이동했다. 이 부분으로 이동하고 bp를 걸어준다. 해당 프로그램을 실행하고 나면 이런 식으로 코드가 변형되어있다. 어딘가에서 해당 부분을 패치한 것으로 보인다. 패치가 시작된 부분부터 참조 주소를 확인했다. 역시나 참조하는 주소가 있다 어떠한 분기문에 따라 패치를 진행하게 된다. 다른 주소도 확인해보았다. 패치가 진행이 된다. 패치가 진행되지 않게끔 무한루프를 돌려주었다. 이렇게 패치를..
오늘의 목적은 패킹된 dll파일의 CRC우회이다. registration successful을 해야 한다. user code로 쉽게 찾을 수 있었다. 위쪽에 보면 BlowFish암호화 함수를 진행하고 atoi함수를 진행한 다음 분기문에 따라 성공 문자열을 볼 수 있다. 시리얼 번호를 1234로 입력하고 암호화 함수를 진행한 다음 값을 보면 0x1이 들어있다. 이 값을 atoi인자로 진행한다는 건데 atoi의 범위 들지 않아 실행하지 않을 것이다. 값을 0x31 0x32 0x33 0x34로 바꾸어주었다. ascii로 1234이다. 성공 문자열을 볼 수 있지만 라이센스 검증 루틴이 여러 개 있는듯했다. 그래서 암호화 함수에서 우회를 진행해야 한다. 암호화 함수의 코드를 바꾸어 주었다. 0x31323334 값..
오늘은 dll과 tls에 있는 안티 디버깅을 우회해보았다. 코드가 이상하다. Analyze this를 해준다. 그리고 쭉 진행하면 INT 2E가 나오는데 커널에 관한 코드라 디버거가 다운이 된다. 그래서 NOP으로 바꾸고 진행해주었다. F8를 눌러준다. 어자피 돌아오기 때문이다. 진행하면 LoadLibraryA가 실행된다. 그다음 GetProcAddress도 실행이 된다. LoadLibrary로 dll파일을 메모리에 로드하고 GetProcAddress로 dll에 있는 api함수들을 가져온다. jmp 두 개로 계속 다양한 dll을 가져오고 호출한다는 의미이다. 어떤 dll을 가져오는지 확인을 했는데 lena151이라는 수상한 dll이 있다. f8를 눌렀더니 nag가 나온다. 로드되자마자 실행이 된다는 뜻이..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.