'프로그래밍/DB/WINAPI'에 해당되는 글 3건

  1. 리버싱 관련 좋은 사이트(API HOOK, DLL 인젝션 등)
  2. [WINAPI] SetWindowsHookEx() 지역훅, 전역훅 (2)
  3. socket 에러코드 값

리버싱 관련 좋은 사이트(API HOOK, DLL 인젝션 등)


업무 하다가 API 함수 관련해서 정보가 필요해서 들어갔었는데...

설명이 잘되어 있는데 전혀 못알아 먹겠다. 내가 필요한것만 먹고 나왔다.


http://www.reversecore.com


저작자 표시 비영리 변경 금지
신고

[WINAPI] SetWindowsHookEx() 지역훅, 전역훅


   이번에 심심해서 접해 본 WINAPI를 이용한 HOOK.. 참 간단한 API를 제공하면서 강력한거 같다. 이 HOOK를 잘 사용하는 사람은.. 뭐랄까.. 뭔가 해킹이나 게임 오토마우스, 오토키보드, 특정키 막기, 리버스엔지니어링등 뭐.. 가능성이 무궁무궁하게 보인다. 뭐 나야.. 그냥 기초만 ( 현 열려있는 창의 한글/영문 여부 알아오기 정도 ) 답습한 상태이긴 하지만.. 나름 연구하는 재미가 있다랄까.. C를 제대로 안배워둔게 조금 원망스럽고, C를 사용하는 업체에 처음 취업이 안되었던게 또 조금더 원망 스럽달까...^^

1. 현재 윈도우에 실행중인 또는 실행 하려는 프로그램에 잠입시킬 DLL를 코딩한다. DLL에 특정 함수를 만들어 이 함수를 윈도우의 모든 실행중인 프로그램에 올려 놓는다.

2. SetWindowsHookEx()를 이용하여 DLL의 특정함수를 전역훅( dll injection ) 할 수 있다.

3. 기본적으로 내가 했던 작업은 프로그램의 한글/영문 상태를 알아오는 것이였는데. 이 한글/영문 상태를 알려면 WINAPI를 사용해야 한다. 그러나 이 WINAPI를 사용 해서 얻어 올 수 있는것은 실행 되고 있는 자신의 프로그램의 상태만 얻어 올 수 있다.( 타 핸들의 프로그램의 상태는 얻어오지 못하고 NULL를 반환한다. )
자료를 검색하던중 전역훅/지역훅에 대해 알게 되었고, 여러가지 연구 끝에 DLL Injection에 성공.. 활성화 된 창에서 한영 변환이 일어나면 특정 프로그램(파워빌더나 VB, C 등으로 만든)으로 SendMessage 하도록 프로그래밍 하였다.

4. 한글과컴퓨터에서 나온 한글프로그램에서는 이게 제대로 작동이 안된다. 아무래도 한글은 IME를 사용하지를 않는듯 하다. ( 한글에서도 반응 하도록 만드려면 더 높은 레벨의 지식이 필요 하겠지..^^ 한글의 구조를 좀 알아야 하니 리버스엔지리어링도 알아야 할 터이고.. 허나 나는 그런수준의 능력자는 아니니 이쯤에서 불러섰다 )
저작자 표시 비영리 변경 금지
신고

socket 에러코드 값


 

에러 메시지

에러번호

"WSAEINTR: Interrupted system call"

10004

"WSAEBADF: Bad file number"

10009

"WSACCESS: Permission denied"

10013

"WSAEFAULT: Bad address"

10014

"WSAEINVAL: Invalid argument"

10022

"WSAEMFILE: Too many open files"

10024

"WSAEWOULDBLOCK: Operation would block"

10035

"WSAEINPROGRESS: Operation now in progress"

10036

"WSAEALREADY: Operation already in progress"

10037

"WSAENOTSOCK: Socket operation on non-socket"

10038

"WSAEDESTADDRREQ: Destination address required"

10039

"WSAEMSGSIZE: Message too long"

10040

"WSAEPROTOTYPE: Protocol wrong type for socket"

10041

"WSAENOPROTOOPT: Bad protocol option"

10042

"WSAEPROTONOSUPPORT: Protocol not supported"

10043

"WSAESOCKTNOSUPPORT: Socket type not supported"

10044

"WSAEOPNOTSUPP: Operation not supported on socket"

10045

"WSAEPFNNOSUPPORT: Protocol family not supported"

10046

"WSAEAFNNOSUPPORT: Address family not supported by protocol family"

10047

"WSAEADDRINUSE: Address already in use"

10048

"WSAEADDRNOTAVAIL: Can't assign requested address"

10049

"WSAENETDOWN: Network is down"

10050

"WSAENETUNREACH: Network is unreachable"

10051

"WSAENETRESET: Net dropped connection or reset"

10052

"WSAECONNABORTED: Software caused connection about"

10053

"WSAECONNRESET: Connection reset by peer"

10054

"WSAENOBUFS: No buffer space available"

10055

"WSAEISCONN: Socket is already connected"

10056

"WSAENOTCONN: Socket is not connected"

10057

"WSAESHUTDOWN: Can't send after socket shutdown"

10058

"WSAETOOMANYREFS: Too many references, can't splice"

10059

"WSAETIMEDOUT: Connection timed out"

10060

"WSAECONNREFUSED: Connection refused"

10061

"WSAELOOP: Too many levels of symbolic links"

10062

"WSAENAMETOOLONG: File name too long"

10063

"WSAEHOSTDOWN: Host is down"

10064

"WSAEHOSTUNREACH: No Route to Host"

10065

"WSAENOTEMPTY: Directory not empty"

10066

"WSAEPROCLIM: Too many processes"

10067

"WSAEUSERS: Too many users"

10068

"WSAEDQUOT: Disc Quota Exceeded"

10069

"WSAESTALE: Stale NFS file handle"

10070

"WSAEREMOTE: Too many levels of remote in path"

10071

"WSASYSNOTREADY: Network SubSystem is unavailable"

10091

"WSAVERNOTSUPPORTED: WINSOCK DLL Version out of range"

10092

"WSANOTINITIALISED: Successful WSASTARTUP not yet performed"

10093

"WSAHOST_NOT_FOUND: Host not found"

11001

"WSATRY_AGAIN: Non-Authoritative Host not found"

11002

"WSANO_RECOVERY: Non-Recoverable errors: FORMERR, REFUSED, NOTIMP"

11003

"WSANO_DATA: Valid name, no data record of requested type"

11004

저작자 표시 비영리 변경 금지
신고