■ Security/- System Hacking 2

Argc 및 Argv에 대한 어셈블리어

일반적으로 프로그램이 argv 배열로 받은 인자는 스택에 저장됨 main() 함수의 인자로 받은 argc와 argv는 스택에 저장되며, 이들은 다음과 같은 방식으로 스택에 위치할 수 있음 (x86 아키텍처를 가정) push ebp ; 이전의 베이스 포인터를 스택에 저장 mov ebp, esp ; 새로운 베이스 포인터 설정 mov eax, [ebp+8] ; argc를 레지스터로 로드 mov edx, [ebp+12]; argv를 레지스터로 로드 ; 이후 eax와 edx 레지스터에는 각각 argc와 argv의 값이 들어있음 여기서 [ebp+8]은 argc가 위치한 주소이며, [ebp+12]는 argv가 위치한 주소임 argv 배열은 문자열 포인터 배열이므로, 해당 포인터들이 가리키는 실제 문자열은 별도의 메모..

Frida 기본 예제 ( Windows )

Frida 기본 예제 ( Windows ) # Frida 활용 예제 ( Windows ) Frida는 scriptable한 DBI 프레임워크로 http://www.frida.re에서 무료 로 다운로드 할 수 있다. 바이너리 조작은 자바스크립트로 이용해야 하여 C/S 구조로 되어 있다. 처음에 바이너리에 프레임워크 라이브러리르 인젝션하여 파이프를 만들어 놓고 그 파이프를 통해서 명령을 주고 받으며 바이너리를 조사할 수 있다. Frida의 가장 큰 장점은 다양한 플랫폼을 지원한다. Intel 뿐 만 아니라 Android, IOS 앱에도 적용 가능하다. 함수 후킹 예제 - 기본 테스트 코드 12345678910111213141516171819202122 #include #include void f(int n)..