Reversing (12) 썸네일형 리스트형 CodeEngn Basic 03 함수의 이름을 물었다. 올리디버거에서 Ctrl + N 을 누르면 사용도는 함수 목록이 나온다. 익숙한 Strcmp 가 나온다. 얘가 답이다. 재미가 없으므로 문제를 더 풀어보자. vbaStrCmp 함수에 브레이크 포인트를 걸고 실행하면 다음과 같은 코드가 나온다.이때 스택에 푸쉬하는 2G83G35Hs2가 이 프로그램의 키이다. 끗 // 코드엔진 3번 CodeEngn Basic 02 어허.. 어허... hex 에디터로 열어보니 수상한 녀석이 플래그이다. 끗 // CodeEngn 코드엔진 3 03 CodeEngn Basic 01 Delphi 통합환경에서 어셈블리어로 작성한 것으로 보인다. Entry Point.어렵지 않은 로직이다. MessageBox 로 자신을 속여보라는 String 을 출력하고GetDriveTypeA 를 통해 CDROM 여부를 확인 후확인시 성공출력, 실패시 실패문 출력 정도로 해석 가능하다. 여기서 잠깐 MessageBoxA 와 GetDriveTypeA API에 대해 알아보고 가도록 하자. int MessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType); 메세지박스 출력을 위한 함수이다. *오너 윈도우 = 메시지 상자를 소유한 윈도우를 말하며 메시지 박스는 오너 윈도우의 중앙에 나타나며 메시지 박스가 떠 있는 동안 오너 윈도우는 사용할 수 없.. 어셈블리 기초 gdb 명령어 Set disassembly-flavor intel Disas main B *main+number브레이크 포인트 Rrun P[변수명]특정 변수값 확인 X $[레지스터:ex:rbp-0x4]값확인 레지스터 EAX 사칙연산 리턴값 EDX 함수 파라미터 ECX for문에서 I 루프 카운터 EBX 부족대비용 ESI 시작인덱스 EDI 목적지인덱스 (ESI복 EDI붙) ESP 스택천장 EBP ESP 임시저장,스택바닥 어셈블리 PUSH 스택에 값 저장 POP 스택에서 값 뺌 MOV 값대입 LEA 주소를 가져옴 ADD src -> +dest SUB src -> -dest INT INTerrupt CALL 함수호출[오퍼랜드] INC INCrease (I++) DEC DECrease(I—) AND, OR XO.. 이전 1 2 다음