목록Rerversing (8)
y0u_bat
VirtualAddress : 프로세스 가상메모리의 절대주소를 의미합니다. 프로세스가 로딩되어있을때 가상메모리의 절대주소를 의미합니다.RAV ( relative virtual address ) : Imagebase + RAV = VA(virtualaddress) 가상메모리에서의 상대주소입니다. ImageBase에서 얼만큼 떨어져 있는지 그런겁니다.RAW( File offset ) : 파일 오프셋입니다. * 이제부터 여기서 나오는 VirtualAddress는 IMAGE SECTION HEADER에 있는 VirtualAddress 입니다.* //헷갈려하지마세요. VirtualAddress : 메모리에서 섹션의 시 주소 (RVA)PointerToRawData : 파일에서 섹션의 시작 위치SizeOfRawDat..
여기서 중요하게 봐야 될부분은 xor ecx,edx이다. edx는 우리가 입력한 이름값이 오고, ecx는 10,20,30이 반복적으로 들어온다. 저기 cmp esi,3 즉 esi가 3이면 xor esi,esi해서 0으로 만들어줌, 그리고 1씩 증가 esi가 증가 암튼 이름이랑 10,20,30이랑 순차적으로 xor 해줌 그런데 키값은 저기 위에 있는거에서 순서대로 10,20,30,10,20,30 xor 하면 이름이 구해짐
UPX으로 패킹이 되어있다. UPX 언패킹하고 올리디버거로 열었다 Search for -> All refered text strings 로 문자열을 한번 보았다.저기 보니까 패스워드처럼 생긴 문자열이 있다. 한번 인증해보니 인증이 되었다. 답은 OEP + 패스워드 이니, 00401360AD46DFS547 이다. 클리어
먼저 올리디버거에 파일을 올려보았습니다. 보니까 upx로 패킹이 되어있네여 맨밑으로 가다보면 jmp이 있는데 이부분을 실행해보았습니다. OEP가 있네여 플러그인을 이용해서 UPX언팩 해봤습니다 다시 올리디버거에 올려보았는데 정상적으로 upx언팩 되어있는걸 보실수있습니다. Serach for -> All referenced text strings 으로 문자열을 검색해줍니다. 보니까 Registered User 랑 GFX-754-IER-954가 보이네여, 먼가 이게 아이디/시리얼 같아서 한번 넣어보았습니다. 클리어
디버거를 탐지하는 함수이름을 찾으면 된다. 우선 올리디버거에 올려보았다. 저 call이 실행되면서 "디버깅 당함"이라는게 뜨는걸 확인할수있다.브레이크포인트를 걸고 f7을 눌러서 함수내부로 들어가보았다. 들어가보았더니 IsDebuggerPresent라는 함수가 실행되는 부분이 있다. 그 함수가 실행되자 EAX 가 1로 변하는걸 볼수있다. CMP EAX,ESI 조건문실행되기전에EAX를 0으로 수정해보았다. 그리고 조건문을 실행하니, 정상으로 뜨는것을 볼수있다. 이것을 통해 IsDebuggerPresent라는 함수가 디버거탐지 함수이라는걸 알수있다 클리어.
한번파일을 올리디버거로 열었다. 함수이름을 찾기위해서 Sreach for -> All intermodular Call로 들어가서 함수를 찾아보았다. 여기 보니 vbaStrCmp라는게 있다. 저게 스트링비교 함수다. Str을 스트링이라 생각하고 cmp를 비교라고 생각하고 있어서 쉽게 찾을수있었다. 클리어
파일을 한번 올리디버거에 올려보았는데 안올라간다. 한번 헥스에디터로 열어서 보았다. 훑어 보던중 CrackMe라는 단어가 나와서 자세히 보았다.먼가 플래그같은 보여서 인증해보았다. 클리어.