② 공부
[Reversing] x64dbg, x32dbg 디버깅 끝난 후 꺼짐현상 해결 방법
프로그램 디버거 끝난 후 꺼짐현상 해결 방법 설정 - 이벤트 - Exit Breakpoint* 체크하기
[리버싱] 간단한 Immunity debugger 사용법
프로그램 : immunity debugger - 아래 창은 CPU main창 1 : 불러온 실행파일의 디스어셈블 명령어 화면, 코드영역의 주소, 영역에 있는 OPCode 2 : 레지스터 목록, 레지스터에 들어가 있는 값 3 : 메모리에 들어가 있는 값 확인(메모리 덤프값) 4 : 스택에 들어가 있는 값 확인(지역변수, 함수프레임, 파라미터 값 등) à 프로그램 진행상태 분석에 쓰임 main - search for - all referenced text string //메모리에 올라가있는 각종 문자열과 상수값을 출력 해당 문자열 선택 후 우클릭으로 follow in disassembler 클릭시 해당 라인으로 이동함 main의 해당 줄 우클릭 - follow in dump - immediate consta..
[리버싱] 어셈블리어 (CMP와 JMP, JNZ, JE) 정리
1. 데이터 비교 CMP ex) CMP A B - A의 값과 B의 값을 비교한다. ++ 두 값이 같다면 ZF가 1로 설정됨, 다르면 ZF가 0으로 설정됨 ex) CMP EAX, ESI - EAX의 값과 ESI의 값을 비교해라. 2. 코드 이동(점프) JMP (Jump) ex) JMP A - 이번 문장에서 처리할 위치를 A로 이동한다. JNZ (Not Zero Jump) ex) JNZ A - 비교 값이 0이 아닌 경우 A로 이동한다. - 비교된 값이 0인 경우에는 점프하지 않고 다음코드를 실행한다. ++ 비교 된 값이 있어야 하므로 앞에 CMP가 먼저 실행된다. JE (Jump Equal) ex) JE A - 비교된 값이 같으면 해당 주소로 이동한다.