반응형 전체 글123 HTB - debugme.exe ```c // positive sp value has been detected, the output may be wrong! char mainCRTStartup_0() { int v0; // eax unsigned __int64 v1; // rax int v2; // ebx unsigned __int64 v3; // rax int (__cdecl *v4)(int, const char **, const char **); // eax LOBYTE(v0) = NtCurrentPeb()->BeingDebugged; if ( !(_BYTE)v0 ) { LOBYTE(v0) = NtCurrentPeb()->UnicodeCaseTableData; if ( !(_BYTE)v0 ) { v1 = __rdtsc(); v2 =.. 2021. 1. 13. Decompilation failure - positive sp value has been found 간혹 디컴파일을 시도하다가 이런 화면을 IDA에서 확인할 수 있다. 이럴때는 Options > General > Stack pointer를 체크해준다. 그다음 디컴파일하려고 하는 부분에 가보면 이런식으로 retn이 -04로 표시되어있는 것을 확인할 수 있는데, -0x4 윗라인으로 커서를 이동하여 Alt+K를 통해 0x0으로 수정하면 디컴파일이 가능하다. 2021. 1. 13. HTB - headache 64bit 실행 바이너리이다. IDA 헥스레이로 분석이 불가능해서, 디버깅을 바로 시작한다. gdb 디버깅을 하려고보니까 까다롭다. IDA로 리눅스디버깅으로 진행한다. 맨 처음 init_proc() 하는 함수에 브레이크포인트를 걸고 진행하면, 진행되는 함수들을 볼 수 있다. F7로 함수에 진입하고 디컴파일되지않는 영역들은 패킹하여 디컴파일을 하면 Initialinsing을 출력하는 함수를 확인할 수 있다. 그 후 Enter the key를 하는 부분이 있는데, 여기서 v6에 key를 입력받는다. 그 후 v6가 20자인지 파악하고, sub_55E718B2B35F함수를 통해 앞서 저장한 v2~v4 (사실상 v2에 주르륵 저장한 값들이다.) 활용하여 연산을 한다. 그 후, v2와 v3들을 아래의 로직으로 연산.. 2021. 1. 11. HTB - BombsLanded 보호되어 있는 글 입니다. 2021. 1. 7. 이전 1 ··· 22 23 24 25 26 27 28 ··· 31 다음 반응형