보안 27

메모리

메모리 주소 접근01: 123402: 5403: 44 eax(001) = 0 mov byte ptr[402000], al > al의  1byte(402000)의  값에 al을 넣는다  메모리 크기 지정8bi = 1byte > byte16bit = 2byte >word32bit = 4byte > dword eax = 00AD51B0ebp = 0052FC14 -4mov dword ptr ss:[ebp-0x4], eax mov word ptr ss:[ebp-4], ax >  데이터를 저장하는 방식 = 바이트 오더링빅 엔디안 > 그대로 저장함리틀 엔디안 > 12345678 은 87654321 로 거꾸로 저장함  ex > B0 C8 26 77 -> 77 26 C8 B0 이렇게 읽어야 한다 엔디안 체크(Endian..

cod cave

cod cave > 악성코드가 원래 코드의 뒷부분에 숨기는 것   브래이크 포인트 걸리게 해서 게임이 멈추게 만듬    PUSH 6을 0으로 바꿈 > 벽으 ㄹ제거하기 위함  glclear 찾음  nop으로 바꾸고 주소 넣어주기  위에서 가져온 값들 집어넣기    glbegin으로 bp걸면서 실행지점 찾기    push 7을 0으로 바꿔서 바뀌는 게 있는지 확인 없으면 다음 지점을 찾음   glclear 로 찾아서 지점 확인     주소 복사해서 빈 공간에 붙여넣기  call glbegin nop로 변경하기 빈 공간에 주소 붙여넣기  화면이 깨진다

hex

PEview HxD  file > 실행 x 데이터 덩어리(hex)memory > 메모리에 매핑이 됨  Hello World.exe 구조  > 파일 헤더 부분MZ - PE 파일의 시작 부분에 나타나는 서명MS-DOS 헤더, NT 헤더, 섹션 - PE 파일이 메모리에 로드될 때 각각의 세션이 어떤 역할을 하는지 정의>섹션 설명.text - 코드가 들어가는 부분 / 프로그램의 실행 코드가 포함된다.rdata - 읽기 전용 데이터로 실행 코드가 아닌 상수 값이나 문자열 등의 데이터가 들어간다.data - 쓰기 가능한 데이터가 들어가는 영역, 프로그램이 실행 중에 사용할 수 있는 변수들이 위치.rsrc - 리소스 섹션, 아이콘, 이미지, UI 등 리소스 파일이 포함된다. >HEX 값 분석- 16진수의 값 원시 파..

코드 작성

코드 작성 space 누르고 입력 값 적기   push 0x10eax 는 0  inc 1을 더한다     dec 1을 뺀다   > 연산 명령어  je(jump equal) 같으면 jump 아니면 아님  > if문에 적용   jump는 무조건 점프 (실선) / je는  점선임  zf 1이면  뜀 0이면 이어짐  jne(jump not equal)  eax 가 0 이 아닐 때는  401020 으로 뛰어라   루프를 돌다가 eax가 0이 되면 루프를 빠져나감        주소를 바꿀 수 있음