본문 바로가기

CodeEngn Basic 10 Find the OEP. Ex) 00401000 / Find the Stolenbyte. Ex) FF35CA204000E84D000000 The solution should be in this format : OEP + Serial ASPack H/W Break Point : 압축이 해제되면서 코드가 실행되어 ASPack 방어기술을 피할 수 있다 (맞나?) PUSHAD 이후에 ESP 주소에 하드웨어 BP를 건다 실행하게되면 RETN 가기전에 멈추게되는데 RETN 되는 위치가 OEP이다 이동후 DUMP (LordPE로 Rebuild 하는 것은 잊지 말자) All referenced text string 등록성공시 표시 될것같은 text로 이동 후 상위코드 부분에서 비교로직을 확인 이건 보너스 더보기
CodeEngn Basic 09 Find the StolenByte UPX POPAD 후 PUSH 명령어로 값들을 스택에 넣고 그대로 유지한채 JMP0040100C로 이동한다.만약 0040100C를 OEP로 잡는다면 저 코드들을 날려버리게 되어 오류가 날 것이다. JMP 코드 상단에 날라갈뻔한 코드들의 크기를 계산하여 입력하고 덤프한다.단 추가코드 크기만큼 빼서 덤프. =========== 아래는 보너스 =========== 덤프된 파일을 불러오면 CreateFile()을 호출하여 abex.12c 파일이 있냐고 확인 한다. 그후 사이즈가 0x12 = 18Byte인지 검사 한다. 위 조건과 같이 파일을 만들어주고 문제파일을 다시 실행하게 되면 끝 더보기
CodeEngn Basic 07 Assuming the drive name of C is CodeEngn, what does CodeEngn transform into in the process of the serial construction API GetVolumelnformation() 호출 후 드라이브 이름은 받는 곳은 VolumnNameBuffer 이다VolumnNameBuffer = 0040225C VolumnNameBuffer 에 CodeEngn으로 변경 후에 증가 로직을 실행해보면 CodeEngn이 무엇으로 바뀌었는지 알수 있다 이건 보너스 더보기