1. API Hooking
- 직접 호출
1) DLL내의 함수 위치는 항상 똑같을 수 없다. 주소가 달라진다면 호출이 제대로 되지 않는다.
2) OS가 호출하는 코드를 바꿔줄 수는 있으나 100군데라면 전부 바꿔야 한다.
- 간접호출
1) .idta 에 자기가 사용하는 API의 모든 주소를 가지고 있다.
2) 0x42,0000 에 메시지 박스 함수의 위치를 가지고 있다가 디레퍼런스 해주면 된다.
3) 이 주소에 사용자가 만든 임의의 함수 f00() 의 주소를 복사해 넣는다면 재배치(Relocation)을 한다.
4) 사용자가 만든 임의의 함수 foo() 의 주소를 복사해 넣는다면 API Hooking 을 할 수 있다.
5) 유저레벨에서 Low 하게 함수를 가로 채는 방법이다.
- 직접 호출
1) DLL내의 함수 위치는 항상 똑같을 수 없다. 주소가 달라진다면 호출이 제대로 되지 않는다.
2) OS가 호출하는 코드를 바꿔줄 수는 있으나 100군데라면 전부 바꿔야 한다.
- 간접호출
1) .idta 에 자기가 사용하는 API의 모든 주소를 가지고 있다.
2) 0x42,0000 에 메시지 박스 함수의 위치를 가지고 있다가 디레퍼런스 해주면 된다.
3) 이 주소에 사용자가 만든 임의의 함수 f00() 의 주소를 복사해 넣는다면 재배치(Relocation)을 한다.
4) 사용자가 만든 임의의 함수 foo() 의 주소를 복사해 넣는다면 API Hooking 을 할 수 있다.
5) 유저레벨에서 Low 하게 함수를 가로 채는 방법이다.
2. 에러 처리
- 엑셀의 셀 만들어 보기
1) 한 셀당 3K를 보관 할 수 있다고 가정해보자.
2) 먼저 넓은 영역을 통째로 잡고 예약만 한 다음에 쓸려고 할 때 확정을 하는 기법을 하고자 한다.
3) 셀의 사용유무를 기억하는데만도 n의 수치 즉 셀의 수만큼 의 비트수가 필요하다.
4) 셀에 무조건 문자열을 쓰고 예외가 발생(즉 셀이 비어있거나,더 쓰고자 할때) 의도적으로 exception을 발생시켜서 셀을 확정 짓는다. 그렇다면 효과적인 메모리 관리(?) 가 가능하다.
- 엑셀의 셀 만들어 보기
1) 한 셀당 3K를 보관 할 수 있다고 가정해보자.
2) 먼저 넓은 영역을 통째로 잡고 예약만 한 다음에 쓸려고 할 때 확정을 하는 기법을 하고자 한다.
3) 셀의 사용유무를 기억하는데만도 n의 수치 즉 셀의 수만큼 의 비트수가 필요하다.
4) 셀에 무조건 문자열을 쓰고 예외가 발생(즉 셀이 비어있거나,더 쓰고자 할때) 의도적으로 exception을 발생시켜서 셀을 확정 짓는다. 그렇다면 효과적인 메모리 관리(?) 가 가능하다.
2007/10/17 - [Study/System] - 10.17(수) 실습 - ( API Hooking, 예외 )



댓글을 달아 주세요
안녕하십니까? API 후킹을 리용해서 사용자의 요구에 따라 프린터를 잠금 또는 해제하는 프로그램을 만들려구 하는데 왕초보인지라 어떻게 하면 좋을지 잘모르겠네요.
여기저기 뒤져보았지만 소스코드라는가 자료들을 얻지못해그러는데 좀 도와주세요.
부탁드립니다.
죄송합니다. 잘 모르겠네요.
잘지내냐?? 나 완전 클래스화 된 테트리스 소스좀 만들어줘 ㅠ.ㅠ 졸 짱놔 죽겠어
자료구조는 리스트 써~ ㅋㅋㅋㅋ
ㅡ_-.. 만들어봐.. 그래야 늘지~