본문 바로가기

분류 전체보기168

ASLR 이란? 윈도우 비스타 부터 적용된 ASLR(Address Space Layout Randomization) 기술입니다. ASLR 기술은 PE파일이 메모리에 로딩될 때 로딩 시작 주소 값을 랜덤하게 바꾸는 것입니다. 또한 해당 프로세스의 스택, 힙의 시작 주소도 실행될 때마다 랜덤 하게 바뀝니다. 즉 exe파일이 실행될 때 프로세스 메모리에서 실제 로딩 주소는 매번 달라지며, DLL 파일이 최초로 로딩될 때도 역시 메모리에서 실제 로딩 주소가 달라집니다. 이유 -> 보안을 강화 하기 위해서 이런방식을 사용합니다. 대부분의 Windows OS 보안 취약점(보통 오버플로우)들은 특정 OS, 특정 모듈, 특정 버전 에서만 동작합니다. 그러한 취약점을 노리는 exploit code에는 특정 메모리 주소가 하드 코딩되어있.. 2022. 7. 25.
PE32+ 64비트 Windows OS 에서 사용되는 실행 파일 형식인 PE32+ 64비트 Windows OS에서 프로세스의 가상 메모리 크기는 16TB입니다. 유저 영역의 크기는 하위 8TB이고, 커널 영역의 크기는 상위 8TB입니다. 이처럼 변경된 가상 메모리 크기에 맞게 기존 PE파일 포맷(PE32)이 약간 변경되었습니다. PE32+ (PE+, PE64) 64비트 Native 모드에서 실행되는 PE파일 포맷을 PE32+(혹은 PE+, PE64)라고 합니다. PE32+는 하위 호환을 위하여 기존 32비트 PE(PE32) 파일의 확장된 형태를 가집니다. 따라서 기존에 PE파일 포맷에 익숙한 분이라면 쉽게 익힐 수 있습니다. 그럼 변경된 사항을 위주로 설명해보겠습니다. IMAGE_NT_HEADERS typedef .. 2022. 7. 18.
메이플 틀린그림 찾기 이미지 겹치기 네. 이벤트로 나온 메이플 미니게임에 틀린그림 찾기가 있는데 쉽게 풀고자 생각하여 만든 프로그램입니다. 아이콘은 땃쥐가 돋보기를 들고 있는 모습으로 아주아주 귀엽습니다. 아무것도 없는 기본 화면입니다. ------------------------------------------------------------------------------------------------------------------------------------------ 틀린그림 찾기에 아크가 나왔습니다. 여기서 프로그램에 찾기 버튼을 클릭하여 그림 두개를 가지고옵니다. 깔끔하게 가지고 와버렸습니다. 겹치기 버튼이 활성화 되었으니 겹치기 버튼을 클릭하여 두 이미지를 겹쳐서 다른곳을 찾으면 됩니다 1번 2번 그림이 번갈아 가면서 .. 2022. 7. 16.
64비트 Win 32 API 64비트 응용 프로그램을 만들 때 기존 Win32 API를 거의 그대로 사용합니다. Win32 API를 따로 제공하는 것이 아닙니다. 기존 개발자 입장에서는 새로운 API를 추가로 익혀야 하는 부담이 없다는 것이 큰 매력입니다. 이와 같은 여러가지 배려를 통하여 기존 32비트용 소스코드를 비교적 쉽게 64비트용으로 포팅할 수 있게 되었습니다. WOW64 64비트 Windows에서는 32비트 응용 프로그램과 64비트 응용프로그램이 모두 실행될 수 있습니다. 64비트 응용 프로그램은 Kernel32.dll(64비트)과 ntdll.dll(64비트)을 로딩 합니다. 반면 32비트 응용 프로그램은 kernel32.dll(32비트)과 ntdll.dll(32비트)을 로딩 하는데, 중간에서 'WOW.. 2022. 7. 15.
메이플 큐브 등급업 시뮬레이터 메이플 큐브 강화 시뮬레이터를 함수로 작성해보았습니다. 메이플 큐브 강화 시뮬레이터는 사실 찾아보면 여러가지가 있는데 저는 한.. 백만번정도 돌려보고 평균을 구해보고자 만들어보았습니다. 코드는 이렇습니다. 파이썬으로 만들었습니다. def cube_enforce(cube : str, start: str = "레어", end : str = "레전드리", server : str = "본섭"): """ 큐브종류 -> 레드큐브, 블랙큐브, 수상한큐브, 장인의큐브, 명장의큐브 스타트/엔드 -> 레어, 에픽, 유니크, 레전드리 리턴값 -> 횟수(int), 가격(int) """ if server == "리부트": cube_money = { "레드큐브" : [12500000, "메소"] , "블랙큐브" : [226000.. 2022. 6. 26.
파이썬 문자열 인덱싱, 슬라이싱 인덱싱 파이썬에서 문자열을 인덱싱 하는 방법입니다. string 이란 변수에 땃쥐입니다 라고 문자열을 넣은뒤 출력해보면 땃쥐입니다 라고 문자열이 출력됩니다. 여기서 땃만 가지고 오고 싶을때 이런식으로 인덱스 번호를 입력해주면 됩니다. 땃 -> 0번째 인덱스 쥐 -> 1번째 인덱스 입 -> 2번째 인덱스 니 -> 3번째 인덱스 다 -> 4번째 인덱스 이런식으로 원하는 문자열을 가지고 올수입니다. 슬라이싱 원하는 문자열을 연속적으로 가지고 오고 싶을 때 사용하는 방법입니다. 만약 여기서 땃 이란 글자하나가 아닌 땃쥐라는 문자열을 가지고 오고싶을때 괄호를 사용하여 [(start index):(end index):(step)] 으로 가지고옵니다. start index : 시작 인덱스 den index : 끝나는.. 2022. 6. 24.
반응형