메모리 2

ARC, Objective-C 메모리 관리 방법

Objective-C 메모리 관리 방법 프로그램을 실행시킬 때 프로그램을 메모리에 올려서 메모리에서 CPU와 상호작용하며 프로세스로 돌아감.그런데 메모리가 부족하다면? 새로운 프로그램은 실행되지 않을 수도 있고 동작중이던 프로세스도 뻗어버리기도 하며 메모리가 확보될 때까지 무한정 루프를 돌기도 하고 또한 운영체제에서 필요한 프로그램을 실행시키기 위해 다른 앱을 강제종료 시키기도 함.요약 ==> 프로그램이 돌아가는 데에 악영향을 끼침. 원활히 여러 프로그램들이 동작하려면 메모리가 잘 관리가 되어야함.어떻게? 사용중인 객체는 사용중이라고 표시! ==> 소유(Own)소유된 횟수는 '참조 카운트'에 저장됨.==> 참조 카운트가 0이라면 -> 더 이상 사용하지 않는군! -> 해제 초기에는 리테인 카운터를 수동으로..

Objective-C 기초 2019.02.15

Win API) 메모리 값 읽기

WinAPI로 메모리 값 읽기. Pin을 이용하여 ReadFile 인자를 전역변수로 잡아두고 After에서 읽은 결과를 뽑아내고자 한다.포인터 변수에 메모리 주소를 담았는데 *를 하나 더 붙이니 에러가 난다. 이럴 경우 윈도우 API 함수인 ReadProcessMemory() 함수를 쓰면 된다.프로세스 핸들이야 GetCurrentProcess() 함수로 받아오면 되고, 나머지는 선언해서 인자로 주면 된다. PIN_LockClient();WINDOWS::BYTE *tmp_buffer = new WINDOWS::BYTE[tmp_size]; //ReadFile 결과 버퍼 내용을 읽어들임.WINDOWS::HANDLE cprocess = WINDOWS::GetCurrentProcess();TraceFile