본문 바로가기

리버싱11

[DreamHack] Inject ME!!! DLL파일 로드 조건을 찾고 해당 DLL파일을 열어서 플래그를 획득하는 것 같습니다. IDA로 열어서 하나하나 들어가보죠 DLL엔트리 포인트 입니다. sub_1800015F0을 호출하네요 트리가 너무 커서 디컴파일 해보면 여러개의 함수가 있지만 sub_180001390을 봐야합니다. 다시 또 sub_1800011A0을 호출하네요 dreamhack.exe 파일 이름이 dreamhack.exe여야만 통과하는것 같네요! visual studio로 dreamhack이라는 솔루션을 만들고 #include "pch.h" int main() { // DLL 파일 로드 HMODULE hDLL = LoadLibrary(L"[경로]\\prob_rev.dll"); return 0; } 이렇게 만들어주고 실행하면? 플래그가 .. 2023. 9. 11.
[Dreamhack] rev-basic-2 이전의 rev-basic문제와 계속 비슷한 유형입니다. 우선 Input하는 지점을 찾고 문자열을 입력값을 비교하는 함수를 찾아야 합니다. 문자열 탐색을 통해서 Input을 찾아 이동합니다. 밑에 중단점을 찍어 둔 곳이 입력값을 처리하는 함수입니다. 대략 이렇게 생겼습니다. cmp rax,12 jae chall2.7FF693C51048 movsxd rax,dword ptr ss:[rsp] lea rcx,qword ptr ds:[7FF693C53000] movsxd rdx,dword ptr ss:[rsp] mov r8,qword ptr ss:[rsp+20] movzx edx,byte ptr ds:[r8+rdx] cmp dword ptr ds:[rcx+rax*4],edx 반복문입니다. cmp rax,12 ->.. 2023. 9. 4.
[DreamHack] simple-operation 기초적인 문제입니다(근데 푼사람은 적은...) 이 문제는 리눅스에서 pwndbg를 이용해서 풀어야 합니다. 실제 플래그도 리눅스를 써야 얻을 수 있고요 아 그리고 다운받은 후에 $ chmod +x [실행파일] 위 명령어로 실행권한을 주어야 제대로 실행 및 디버깅이 됩니다 pwndbg를 설치한 상태로 디버깅을 실행하면 위와 같이 디버깅이 실행되는것을 볼 수 있습니다. 일단 실행부터 시켜보겠습니다. 랜덤한 수가 생성이 되고 입력값을 받은뒤 결과값이 나오네요.. 이제 main함수를 봐야겠습니다. main의 일부분 입니다. get_rand_num으로 난수를 생성하고 __isoc99_scanf@plt를 통해서 입력값을 받고 xor연산을 한 다음 main+341에서 strcmp@plt를 통해서 답과 비교하는 것 같.. 2023. 9. 4.
[CodeEngn] Basic RCE L04 레벨4입니다. 실행시켜보니 디버깅 당하고있다고하고 그냥 실행키면 "정상"이라는 말이 나옵니다. 문제 설명대로 디버깅을 탐지하는 함수를 찾아봅시다 콘솔창에 "디버깅 당함"이라는 말이 올라오니까 문자열을 찾아줍시다 바로 나오네요 들어가보면 위에 함수가 바로 보입니다 IsDebuggerPresent 딱봐도 디버깅 관련인것같네요 답인것 같습니다 2023. 8. 15.
[CodeEngn] Basic RCE L02 레벨2입니다(기초) 실행이 안된다고 합니다 IDA , x64dbg둘다 해봤는데 IDA도 완벽하게 읽지는 못하고 hex파일로 열어주네요 그래서 그냥 HxD를 썼습니다. 대충 이런식으로 열립니다. 파일크기도 굉장히 작습니다. 쭉 내려보면 CrackMe , Nope , Yeah같은 글자들이 보입니다. 검사하는 부분인가봅니다. 맨 마지막에 수상한 글자가 보이네요 입력해주었더니 성공! 2023. 8. 15.
[CodeEngn] Basic RCE L01 정말 오랜만에 글을 쓰네요 어쩌다보니 BoB 12기에 붙어버려서 눈코뜰새 없이 바빠서 그렇습니다...하핫... 리버싱도 많이 까먹은 상태라 다시 기초부터, 쉬운문제부터 다시 시작해보려고 합니다. 코드엔진이라는 사이트에서 제공해주는 문제입니다. 우연찮게 BoB를 운영하는 한국정보기술연구원이 협찬하는 곳이였네요 하하핫! 파일을 다운받고 열어보겠습니다! 이런 문구가 뜹니다. HDD를 CD-Rom이라고 인식하게 하라고 하네요 IDA에서 한번 열어보니 이런식으로 구조가 나오는군요 x64dbg(x32)에서도 그래프로 한번 보았는데 음.. 제가 잘 못다루는건지 IDA만큼 명확하게 보이진 않는것 같습니다! 아무튼 GetDriverTypeA를 호출하고 eax와 esi를 비교하면서 jz(Jump if Zero)를 통해 분.. 2023. 8. 15.