stanford-oval/wikipedia huggingface dataset:
2018년 한국배구연맹 트라이아웃
여자부 > 미지명 선수

다음은 V-리그에서 뛴 경험이 있으나, 2018년 드래프트에서 지명되지 못한 선수들이다.
| 선수 | 포지션 | 국적 | 소속팀 |
| --- | --- | --- | --- |
| 헤일리 스펠만 | OPP |  미국 | ASPTT 뮐루즈 (프랑스) |
| 크리스티나 킥카 | OPP |  벨라루스 | 인천 흥국생명 핑크스파이더스 |
| 파토우 듀크 | OPP/OH |  세네갈 | GS칼텍스 서울 KIXX |
여자부 > 드래프트 추첨

| 구단 | 2017-18순위 | 구슬 개수 | 1순위 확률 | 추첨 결과 |
| --- | --- | --- | --- | --- |
| 인천 흥국생명 핑크스파이더스 | 6 | 30 | .250 | 2 |
| 대전 KGC인삼공사 | 5 | 26 | .217 | 1 |
| GS칼텍스 서울 KIXX | 4 | 22 | .183 | 3 |
| 수원 현대건설 | 3 | 18 | .150 | 5 |
| 화성 IBK기업은행 알토스 | 2 | 14 | .117 | 6 |
| 김천 한국도로공사 하이패스 | 1 | 10 | .083 | 4 |
인천 흥국생명 핑크스파이더스가 지명한 베레니카 톰시아.
김천 한국도로공사 하이패스와 재계약한 이바나 네소비치.
수원 현대건설이 지명한 베키 페리.
애기여새

애기여새는 여새과의 새다.
| --- | --- |
생물 분류 식별자:  위키데이터: Q184314  위키생물종: Bombycilla cedrorum  ABA: cedwax  ADW: Bombycilla_cedrorum  Avibase: 9437D635FF4E2607  BirdLife: 22708153  BOLD: 9606  CoL: MFZ9  BOW: cedwax  eBird: cedwax  EoL: 45510954  EPPO: BMBYCE  EUNIS: 101065  Euring: 10460  Fauna Europaea: 97153  Fauna Europaea (new): 980375e6-0e77-4a9e-b4ec-bdaa10625d94  화석연구데이터베이스: 369287  GBIF: 2484609  GNAB: cedar-waxwing  IBC: cedar-waxwing-bombycilla-cedrorum  iNaturalist: 7428  IRMNG: 10194772  ITIS: 178532  IUCN: 22708153  NBN: NHMSYS0000530206  NCBI: 161648  Neotropical: cedwax  ODNR: cedar-waxwing  Xeno-canto: Bombycilla-cedrorum  ZooBank: 5BBACEB9-C60B-43A1-AB5A-4B471AE5F83F
일본 아이스하키 국가대표팀

일본 아이스하키 국가대표팀(일본어: アイスホッケー日本代表)은 일본을 대표하는 남자 아이스하키 국가대표팀으로 대한민국, 카자흐스탄과 함께 아시아 아이스하키 3강 체제를 형성하고 있다.
선수 기록

| # | 성명 | 연도 | 출장 | 골 | 어시스트 | 포인트 |
| --- | --- | --- | --- | --- | --- | --- |
| 1 | 스즈키 노리오 | 1985–1996 | 66 | 39 | 46 | 85 |
| 2 | 사카이 도시유키 | 1985–2002 | 106 | 44 | 32 | 76 |
| 3 | 후루하시 마쿠루 | 2017– | 55 | 28 | 43 | 71 |
| 4 | 오바라 다이스케 | 2003–2017 | 85 | 33 | 33 | 66 |
| 5 | 다나카 고 | 2007–2019 | 126 | 27 | 37 | 64 |
| 6 | 우에노 히로키 | 2006– | 103 | 30 | 32 | 62 |
| 7 | 이와모토 고지 | 1962–1975 | 41 | 29 | 30 | 59 |
| 7 | 스즈키 다카히토 | 1997–2013 | 90 | 24 | 35 | 59 |
| 9 | 구지 슈헤이 | 2009– | 74 | 38 | 17 | 55 |
| 10 | 히키기 다카오 | 1967–1981 | 28 | 19 | 28 | 47 |
야쓰다 고스케

야쓰다 고스케 (1982년 3월 17일 ~ )는 일본의 전 축구 선수이다. 과거 산프레체 히로시마, 사간 도스, 도쿄 베르디, 요코하마 FC, 도쿠시마 보르티스, SC 사가미하라, 아비스파 후쿠오카에서 활동하였다.
이향원

같은 이름을 가진 아나운서에 대해서는 이향원 (아나운서) 문서를 참고하십시오.
| 이향원 李鄕園 |
| --- | --- |
본명: 이동호(李東鎬)
출생: 1944년 8월 21일 경상북도
국적: 대한민국
직업: 만화가
이향원(본명: 이동호1944년 8월 21일 ~ 2011년 2월 17일)은 대한민국 경상북도 영천(永川)의 출신의 만화가이다.
1965년 서라벌예술대학 사진과를 졸업하였다. 1960년 만화 「의남매」를 게재하면서 만화가로 데뷔하였다. 1990년 우수어린이만화작가에 선정되었고, 1998년 한국간행물윤리위원회 심의위원으로 활동하였다. 만화잡지가 유행했던 1970년대부터 1980년대까지 한국 만화계의 부흥을 이끌었던 만화가 중 한 사람으로 평가받는다.
작품

《싸우는 투견》(1968년)
《마구왕 철》(소년동아일보 연재, 1981년 단행본 출판)
《환상의 변화구, 매직서클》(소년동아일보 연재, 1984년 단행본 출판)
《이겨라 벤》(1983년~1985년, 소년중앙 연재)
(이겨라 무쇠) (1986~1987년, ((소년중앙)) 연재)
(이겨라 벤> 2부 (1987~1988년)((소년중앙)) 연재)
《나는 차돌》, 《파이팅 차돌》(1987년, 소년중앙 연재)
《삽살개 회오리》(소년중앙 연재)
《파이터 고수머리》(소년중앙 연재)
《떠돌이 검둥이》(1993년)
《파이팅 꼭지》(2000년)
《명견 스토리》(2000년~2001년)
《행복동 이야기》(2008년)
수상

1991년 YWCA 우수만화작가상
데뷔

1960년 《의남매》
문하생

허영만
서던 일리노이 주립 대학교 카본데일

| --- | --- |
종류: 공립
설립: 1869년
국가: 미국
위치: 미국 일리노이 주 카본데일
ko 서던 일리노이 주립 대학교 카본데일의 위치
서던 일리노이 주립 대학교(영어: Southern Illinois University Carbondale)는 미국 일리노이주 카본데일에 있는 4년제 주립 대학교이다.
학교 연혁과 역사

1869년 첫 개교되어 현재에 이르고 있다.
학교 동문

분류:서던일리노이 대학교 동문  문서를 참고하십시오.
일편단심 (드라마)

| --- | --- |
일편단심  一片丹心
장르 : 드라마
방송 국가 :  대한민국
방송 채널 : MBC
방송 기간 : 1972년 12월 2일 ~ 1973년 2월 16일
방송 시간 : 월 ~ 금 밤 9시 30분 ~ 9시 50분
방송 분량 : 20분
연출 : 유흥열
각본 : 이서구, 민병훈
《일편단심》은 1972년 12월 2일부터 1973년 2월 16일까지 방영된 MBC 일일연속극이다.
출연진

전운
한은진
김정연
정욱
김민정
윤연경
김영애
|  문화방송 일일연속극 2> 이전 작품 |  문화방송 일일연속극 2> 작품명 |  문화방송 일일연속극 2> 다음 작품 |
| --- | --- | --- |
| 아다다 (1972년 6월 22일 ~ 1972년 12월 1일)  | 일편단심 (1972년 12월 4일 ~ 1973년 2월 16일)  | 한백년 (1973년 2월 17일 ~ 1974년 3월 29일)  |
생텀 (영화)

| 생텀 Sanctum |
| --- | --- |
감독: 앨리스터 그리어슨
각본: 앤드루 와이트, 존 가빈
출연: 리처드 록스버그, 라이스 웨이크필드, 요안 그리피드, 앨리스 파킨스, 댄 와일리
촬영: 줄스 오로린
음악: 데이비드 허슈펠더
배급사: 유니버설 픽처스
개봉일:  2011년 2월 3일 (2011-02-03) 
시간: 109분
국가:  오스트레일리아
언어: 영어
《생텀》(Sanctum)은 앨리스터 그리어슨 감독의 2011년 3D 스릴러 영화이다. 제임스 캐머런 감독이 제작에 참여하였다.
출연진

리처드 록스버그: 프랭크 역
라이스 웨이크필드: 조시 역
요안 그리피드: 칼 역
엘리스 파킨스: 빅토리아 역
댄 와일리: 조지 역
같이 보기

생존 영화
헤로쿠

| --- | --- |

형태: 자회사
창립: 2007년(17년 전)(2007)
산업 분야: 클라우드 서비스형 플랫폼
본사 소재지: 미국 캘리포니아주 샌프란시스코
제품: Heroku Platform Heroku Postgres Heroku Redis Heroku Enterprise Heroku Teams Heroku Connect Heroku Elements
모기업: 세일즈포스닷컴
웹사이트: heroku.com
헤로쿠 주식회사(Heroku, Inc)는 웹 애플리케이션 배치 모델로 사용되는 여러 프로그래밍 언어를 지원하는 클라우드 PaaS이다. 최초의 클라우드 플랫폼들 가운데 하나인 헤로쿠는 2007년 6월 개발이 시작되었고 당시에는 루비 프로그래밍 언어만 지원하였으나 지금은 자바, Node.js, 스칼라, 클로저, 파이썬, PHP, 고를 지원한다. 이러한 이유로, 헤로쿠는 개발자가 모든 언어 간 비슷한 방식으로 애플리케이션들을 빌드, 실행하고 스케일링할 수 있게 하므로 헤로쿠는 폴리글롯 플랫폼으로 간주된다. 헤로쿠는 2010년 세일즈포스닷컴에 인수되었다.
용어

"헤로쿠"(Heroku)는 "heroic"과 "haiku"를 합친 것이다. 일본 테마는 루비를 개발한 마츠모토 유키히로가 맡았다. 헤로쿠 개발자들은 일본어나 다른 언어로 그들의 프로젝트의 이름에 특별한 의미를 부여하고 싶지는 않았다.
제품

The Heroku Platform
Heroku Postgres
Heroku Redis
Heroku Teams
Heroku Enterprise
Heroku Connect
Heroku Elements
헤로쿠 플랫폼 동작 다이어그램.
애향운동장

| --- | --- |
전체 명칭: 애향운동장
원어 명칭: Aehyang Stadium
위치: 대한민국 제주특별자치도 제주시 서광로2길 24 (오라일동 1006번지)
좌표: 북위 33° 29′ 44″ 동경 126° 31′ 04″﻿ / ﻿북위 33.495525°  동경 126.517812° ﻿ / 33.495525; 126.517812
개장: 1984년
소유: 제주특별자치도청
운영: 제주시청 문화관광체육국 체육진흥과
건설 비용: 3억 9천만 원
표면: 천연잔디 (필드), 우레탄 (트랙)
규모: 필드: 111 × 75 m 트랙: 400 m × 6 레인
좌석: 1,000석
수용 인원: 6,000명
ko
애향운동장(愛鄕運動場, Aehyang Stadium)은 대한민국 제주특별자치도 제주시에 있는 스포츠 시설이다. 천연잔디 필드와 우레탄 트랙이 갖춰진 경기장이며, 1984년에 준공되었다.
같이 보기

제주종합경기장
알레샨드리 기마랑이스

이 사람의 이름은 포르투갈어 이름입니다. 첫 번째 혹은 모계성은 '' 이며 두 번째 혹은 부계 성은 '' 입니다.
알레샨드리 엔히키 보르지스 기마랑이스(포르투갈어: Alexandre Henrique Borges Guimarães, 1959년 11월 7일, 알라고아스 주 마세이오 ~)는 코스타리카의 축구 감독이자 전직 선수로, 현역 시절 미드필더였다.
브라질 출신으로 브라질에서 유년 시절을 보낸 기마라예스는 1990년 월드컵에 코스타리카 국가대표팀 일원으로 참가했고, 2002년과 2006년 대회에는 감독으로 참가했다. 그는 아랍에미리트의 알 와슬, 중국의 톈진 테다, 그리고 코스타리카의 사프리사에서 큰 성공을 거두었다. 그의 아들 셀소 보르헤스는 현재 알라후엘렌세 선수로 활약하고 있다.
클럽 경력

브라질 동북부 알라고아스 주 마세이오 출신인 기마랑이스는 1971년에 12세의 나이에 코스타리카로 이민했고, 1980년에 코스타리카 시민권을 취득했다. 그는 아스투리아스에서 농구를 하다가 축구 선수가 되었고, 기마랑이스는 2부 리그의 두르파넬 산 블라스에서 신고식을 치러 16골로 리그 득점왕에 올랐다. 이후 그는 1부 리그의 푼타레나스, 사프리사, 그리고 투리알바에서 활약했다.
그는 1982년, 1988년, 그리고 1989년에 사프리사 소속으로 3번 우승을 거두었고, 377번의 경기에 출전해 95골을 넣었다.
국가대표팀 경력

기마랑이스는 1985년 3월, 캐나다를 상대로 첫 코스타리카 국가대표팀 경기를 치렀고, 총 15번의 경기에 출전해 2골을 기록했다. 그는 자국을 대표로 5번의 월드컵 예선전 경기에 출전했고, 1990년 월드컵에서 3경기에 출전했다.
그의 마지막 국가대표팀 경기는 체코슬로바키아와의 월드컵 16강전 경기였다.
국가대표팀 경력 > 국가대표팀 득점 목록

아래의 점수에서 왼쪽의 점수가 코스타리카의 점수이다.
| # | 날짜 | 경기장 | 상대 | 점수 | 결과 | 대회 |
| --- | --- | --- | --- | --- | --- | --- |
| 1 | 1985년 9월 8일 | 온두라스 테구시갈파 티부르시오 카리아스 안디노 경기장 |  온두라스 | 1–1 | 1–3 | 1986년 월드컵 예선전 |
| 2 | 1989년 2월 7일 | 코스타리카 산호세 코스타리카 국립 경기장 |  폴란드 | 1–1 | 2–4 | 친선경기 |
감독 경력

현역 은퇴 후, 그는 코스타리카 역사상 가장 성공적인 감독으로 발돋움했다. 그는 벨렌에서 지도자의 길에 입문했고, 1996년 여름에 에레디아노의 감독으로 취임했으며, 두 구단에서 모두 호성적을 거두었다. 이후, 그는 사프리사의 감독으로 취임해 수 년 동안 동행하며 3번 국내 리그를 우승했다. 그가 마지막으로 맡은 코스타리카 구단은 카르타히네스였고, 2003년 6월에 맡았지만, 이 임기는 실패였고, 2003년 11월에 해임되었는데, 카르타히네스는 2부 리그 강등 근처까지 갔고, 고액 급여를 받는 선수들로 인해 재정난이 닥쳐 제 기량을 내지 못했다. 그는 해외 무대로 나가 과테말라의 코무니카시오네스, 멕시코의 이라푸아토와 도라도 데 시날로아를 지도했다.
그는 코스타리카 국가대표팀 감독으로 소기 성과를 냈는데, 2002년 월드컵에서 완벽에 가까운 본선행을 일구어냈다. 조별 리그를 넘지 못하면서, 기마랑이스 감독이 국가대표팀 감독에서 물러섰다. 그는 이후 국가대표팀 감독직을 1번 더 맡았지만, 훨씬 더 선수단이 약화된 상태였다. 이에도 불구하고 코스타리카는 2006년 월드컵 본선행에 성공했지만, 대회 본선에서 초라한 성적을 거두면서 다시 사퇴했다.
2006년 11월 7일, 기마랑이스는 47번째 생일날에 파나마 국가대표팀 감독으로 취임했지만, 2008년 6월에 해임되었다. 2009년 4월, 그는 중동으로 둥지를 옮겨 아랍에미리트의 알 와슬에서 2009-10 시즌에 도전장을 내밀었다. 그는 알 와슬을 이끌고 카타르 스포츠단을 이겨 걸프 클럽 선수권을 우승했는데, 이 우승은 알 와슬이 거둔 첫 우승이었다. 이후, 그는 2010년에 알 다프라로 이적했다. 2011년 5월, 그는 사프리사와 1년 계약을 맺어 복귀했다.
2012년 6월 1일, 중국 슈퍼 리그의 톈진 테다가 해임된 요시프 쿠제의 후임 감독으로 기마랑이스가 취임했다고 발표했고, 1년차를 꼴찌에서 선두 근처까지 순위가 상승하는 훌륭한 성적으로 마무리했다. 2년차를 앞두고, 구단은 2000년대 중반 재정 문제로 승점 6점 삭감의 징계를 받았지만, 안정적으로 잔류권 성적을 거두었다. 기마랑이스는 이후 계약을 연장하지 않고 떠났다.
2016년 4월 19일, 인도 슈퍼리그의 뭄바이 시티가 프랑스 전 국가대표 니콜라 아넬카의 후임 감독으로 기마랑이스를 선임했다. 그는 2018년 8월에 뭄바이를 떠났다.
2019년 6월 17일, 그는 아메리카 데 칼리의 감독으로 취임했다. 그의 취임 원년, 아메리카 데 칼리는 2019년 12월 7일에 통산 14번째 콜롬비아 리그를 우승했다. 결선은 후니오르 데 바랑키야와의 1·2차전 경기였다. 1차전 경기는 바랑키야에서 0-0으로 끝났다. 2차전은 안방 칼리에서 열렸고, 아메리카가 2-0으로 이겼다.
사생활

그는 의사인 루이스 지 소자 보르지스와 마리아 알리시 기마랑이스의 4남매 중 하나였다. 그는 리나 모라를 배우자로 맞이하여 슬하에 마우로와 셀소 두 자식을 두었고, 셀소는 코스타리카 국가대표팀에서도 활약했는데, 2022년에 코스타리카의 알라후엘렌세에서 활약했다.
허울 좋은 여자

| 허울 좋은 여자 Only When I Laugh |
| --- | --- |
감독: 글렌 조던
각본: 닐 사이먼
제작: 로저 M. 로드스타인, 닐 사이먼
출연: 마사 메이슨, 에드 무어, 조안 해킷
촬영: 데이비드 M. 월시
편집: 존 라이트
음악: 데이빗 샤이어
개봉일:  1981년 9월 23일 (1981-09-23) 
시간: 120분
국가: 미국
언어: 영어
허울 좋은 여자(Only When I Laugh)는 미국에서 제작된 글렌 조던 감독의 1981년 영화이다. 마사 메이슨 등이 주연으로 출연하였고 로저 M. 로드스타인 등이 제작에 참여하였다.
출연 > 주연

마사 메이슨
에드 무어
조안 해킷
출연 > 조연

엘렌 라 갬바
베니다 에반스
제임스 코코
존 바가스
크리스티 맥니콜
제작진

원작자: 닐 사이먼
미술: 앨버트 브레너
의상: 앤 로스
후킹

후킹(영어: hooking)은 소프트웨어 공학 용어로, 운영 체제나 응용 소프트웨어 등의 각종 컴퓨터 프로그램에서 소프트웨어 구성 요소 간에 발생하는 함수 호출, 메시지, 이벤트 등을 중간에서 바꾸거나 가로채는 명령, 방법, 기술이나 행위를 말한다. 이때 이러한 간섭된 함수 호출, 이벤트 또는 메시지를 처리하는 코드를 훅(영어: hook)이라고 한다.
크래킹(불법적인 해킹)을 할 때 크래킹 대상 컴퓨터의 메모리 정보, 키보드 입력 정보 등을 빼돌리기 위해서 사용되기도 한다.
예를 들어 특정한 API를 후킹하게 되면 해당 API의 리턴값을 조작하는 등의 동작을 수행할 수 있다.
방법

일반적으로 훅은 소프트웨어가 이미 실행중일 때 삽입되지만, 후킹은 응용 프로그램이 실행되기도 전에 쓰일 수 있는 전략이다. 이 두 기술은 아래에 더 자세히 설명되어 있다.
방법 > 물리적 수정

응용 프로그램이 실행되기 전에 리버스 엔지니어링 기법으로 실행 또는 라이브러리를 물리적 수정함으로써 후킹을 할 수 있다. 이러한 기법은 일반적으로 다른 모니터로 함수 호출을  가로채거나 그것들을 완전히 다른 함수로 대체하는데 사용된다.
예를 들어, 역어셈블러를 사용하여 모듈 내에서 함수의 시작점을 찾을 수 있다. 그 다음, 다른 라이브러리 모듈을 동적으로 로드하고, 로드된 라이브러리 내에서 원하는 함수를 실행하도록 변경할 수 있다. 해당되는 경우, 후킹으로 얻을 수 있는 관련된 다른 접근 방법은 실행 파일의 임포트 테이블을 변경하는 것이다. 이 테이블은 추가 라이브러리 모듈을 로드하도록 수정될 수 있을뿐만이 아니라 함수가 응용 프로그램에 의해 호출될 때 외부 코드가 호출되는 것으로 바뀔 수도 있다.
후킹을 하기 위한 대체 방법은 래퍼 라이브러리를 통해 함수 호출을 차단하는 것이다. 래퍼를 만들 때, 응용 프로그램을 로드하는 라이브러리는 원본 라이브러리와 동일한 기능을 가진 자신만의 라이브러리를 만든다. 즉, 접근할 수 있는 모든 기능은 원본과 대체된 라이브러리 모두 동일한 것이다. 이 래퍼 라이브러리는 원래 라이브러리의 기능 중 하나를 호출하거나, 논리의 완전히 새로운 설정으로 대체되도록 설계할 수 있다.
방법 > 런타임 수정

운영체제와 소프트웨어는 훅을 삽입하는 프로세스에 충분한 권한이 부여된 경우 런타임도중 이벤트 훅을 쉽게 삽입할 수 있다. 예를 들어, Microsoft Windows에서는 대화 상자, 스크롤바 및 메뉴뿐만 아니라 다른 항목에 대한 시스템 이벤트와 응용 프로그램 이벤트를 처리하거나 수정하는 데 사용될 수 있는 훅을 삽입할 수 있다. 또한 훅은 키보드 및 마우스 이벤트를 삽입, 제거, 프로세스 또는 수정할 수 있다. 리눅스에서는 훅이 넷필터를 통해 커널 내의 네트워크 이벤트를 처리하기 위해 비슷한 방식으로 사용될 수 있는 또 다른 예를 제공한다.
이러한 기능이 제공되지 않은 경우, 후킹의 특별한 형태는 프로세스에 의해 만들어진 라이브러리 함수 호출을 차단하는 방법을 사용한다. 후킹은 대상 함수의 첫 번째 몇몇 코드가 주입 코드로 이동하도록 지시를 변경하여 구현된다. 또는 공유 라이브러리의 개념을 사용하는 시스템에서는 인터럽트 벡터 테이블 또는 임포트 디스크립터 테이블이 메모리에서 수정될 수 있다. 기본적으로 이러한 전술은 물리적 수정과 같은 아이디어를 사용한다. 하지만 이미 실행되어 있는 상태라면 프로세스의 메모리에 있는 명령과 구조를 변경한다.
예제 코드 > C# 키보드 이벤트 후킹

다음 예제는 닷넷 프레임워크를 사용하여 마이크로소프트 윈도우에서 키보드 이벤트를 후킹하는 것이다.
using System.Runtime.InteropServices;

namespace Hooks
{
	public class KeyHook
	{
		/* Member variables */
		protected static int Hook;
		protected static LowLevelKeyboardDelegate Delegate;
		protected static readonly object Lock = new object();
		protected static bool IsRegistered = false;

		/* DLL imports */
		[DllImport("user32")]
		private static extern int SetWindowsHookEx(int idHook, LowLevelKeyboardDelegate lpfn,
			int hmod, int dwThreadId);

		[DllImport("user32")]
		private static extern int CallNextHookEx(int hHook, int nCode, int wParam, KBDLLHOOKSTRUCT lParam);

		[DllImport("user32")]
		private static extern int UnhookWindowsHookEx(int hHook);

		/* Types & constants */
		protected delegate int LowLevelKeyboardDelegate(int nCode, int wParam, ref KBDLLHOOKSTRUCT lParam);
		private const int HC_ACTION = 0;
		private const int WM_KEYDOWN = 0x0100;
		private const int WM_KEYUP = 0x0101;
		private const int WH_KEYBOARD_LL = 13;

		[StructLayout(LayoutKind.Sequential)]
		public struct KBDLLHOOKSTRUCT
		{
			public int vkCode;
			public int scanCode;
			public int flags;
			public int time;
			public int dwExtraInfo;
		}

		/* Methods */
		static private int LowLevelKeyboardHandler(int nCode, int wParam, ref KBDLLHOOKSTRUCT lParam)
		{
			if (nCode == HC_ACTION)
			{
				if (wParam == WM_KEYDOWN)
					System.Console.Out.WriteLine("Key Down: " + lParam.vkCode);
				else if (wParam == WM_KEYUP)
					System.Console.Out.WriteLine("Key Up: " + lParam.vkCode);
			}
			return CallNextHookEx(Hook, nCode, wParam, lParam);
		}

		public static bool RegisterHook()
		{
			lock (Lock)
			{
				if (IsRegistered)
					return true;
				Delegate = LowLevelKeyboardHandler;
				Hook = SetWindowsHookEx(
					WH_KEYBOARD_LL, Delegate,
					Marshal.GetHINSTANCE(
						System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0]
					).ToInt32(), 0
				);

				if (Hook != 0)
					return IsRegistered = true;
				Delegate = null;
				return false;
			}
		}

		public static bool UnregisterHook()
		{
			lock (Lock)
			{
				return IsRegistered = (UnhookWindowsHookEx(Hook) != 0);
			}
		}
	}
}
예제 코드 > DirectDraw 후킹

다음은 윈도우에서 DirectDraw(다이렉트드로) 함수 호출을 후킹한 예이다. 이것은 APIHijack(에이피아이 하이잭)이라는 후킹 라이브러리를 활용한 것이고, 소스는 DLL(동적 링크 라이브러리)로 컴파일되었다. 인스톨훅(InstallHook)을 호출할 추가적인 응용 프로그램도 필요하다.
#include <windows.h>
#include <shlwapi.h>
#include <ddraw.h>
#include "testdll.h"
#include "..\apihijack.h"

char temp[256];
HINSTANCE hDLL;

// type defs
typedef HRESULT (WINAPI *DirectDrawCreateEx_Type)( GUID FAR *lpGUID, LPVOID *lplpDD, REFIID iid, IUnknown FAR *pUnkOuter );

// function prototypes
HRESULT WINAPI MyDirectDrawCreateEx( GUID FAR * lpGuid, LPVOID  *lplpDD, REFIID  iid,IUnknown FAR *pUnkOuter );

// hook structure
enum
{
    D3DFN_DirectDrawCreateEx = 0
};

SDLLHook D3DHook = 
{
    "DDRAW.DLL",
    false, NULL,
    {
        { "DirectDrawCreateEx", MyDirectDrawCreateEx },
        { NULL, NULL }
    }
};

// Hook function.
HRESULT WINAPI MyDirectDrawCreateEx(GUID FAR* lpGuid, LPVOID  *lplpDD, REFIID  iid,IUnknown FAR *pUnkOuter )
{
    DirectDrawCreateEx_Type OldFn = (DirectDrawCreateEx_Type)D3DHook.Functions[D3DFN_DirectDrawCreateEx].OrigFn;
    return OldFn( lpGuid, lplpDD, iid, pUnkOuter );
}

// CBT Hook-style injection.
BOOL APIENTRY DllMain( HINSTANCE hModule, DWORD fdwReason, LPVOID lpReserved )
{
    if ( fdwReason == DLL_PROCESS_ATTACH )  // When initializing....
    {
        hDLL = hModule;

        // Only hook the APIs if this is the fsim proess.
        GetModuleFileName(GetModuleHandle(NULL), temp, sizeof(temp));
        PathStripPath(temp);

        if(stricmp(temp, "fsim.exe" ) == 0)
            HookAPICalls( &D3DHook );
    }

    return TRUE;
}

// This segment must be defined as SHARED in the .DEF
#pragma data_seg (".HookSection")
// Shared instance for all processes.
HHOOK hHook = NULL;
#pragma data_seg ()

TESTDLL_API LRESULT CALLBACK HookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
    return CallNextHookEx( hHook, nCode, wParam, lParam);
}

TESTDLL_API void InstallHook()
{
    hHook = SetWindowsHookEx(WH_CBT, HookProc, hDLL, 0);
}

TESTDLL_API void RemoveHook()
{
    UnhookWindowsHookEx( hHook );
}
예제 코드 > JMP 명령어를 이용한 API/함수 후킹(가로채기)

다음 소스 코드는 오픈 소스인 Chrom(크롬) 라이브러리를 사용하는 API/함수 후킹의 예시이다. 이는 새로운 함수에 대한 JMP 명령으로 대상 함수의 처음 6바이트를 덮어써서 훅한다. 코드는 DLL로 컴파일 된 후, 코드 인젝션의 방법을 사용하여 대상 프로세스에 로드된다. 이 예제 코드는 "nspr4.dll"의 "PR_Write" 함수와 "c:/log.txt"에 기록된 모든 HTTP/HTTPS 요청을 훅한다.
/*
Firefox_hook (C) Raja Jamwal 2011
Distributed under GNU GPL License

Firefox_hook is a example code for Chrom Library, Firefox_hook log every
HTTP/HTTPS requests that firefox makes

Chrom, is API/Funtion interception/hijacking library for windows systems
Copyright (C) 2011  Raja Jamwal

This file is part of Chrom.
*/

#include "stdafx.h"
#include "chrom.h"

Hook Firefox; // Hook firefox
DWORD PR_Write_H (DWORD *fd,  void *buf,DWORD amount); // this is our overiding-function
typedef DWORD (*prWrite)(DWORD*,void*,DWORD); // defination of our original function

prWrite prw = NULL; // create a orginal function, we later point this to orginal function
		    // address

char log_file[]="c://log.txt"; // logfile

// this will log our data
int write_log(char * log, char * data)
{
ofstream fout(log, ios::app);
fout << data;
fout.close();
return TRUE;
}

// initialize hooking, this adds the jump instruction to orginal function address
int create_hooks()
{
	// Override PR_Write function in nspr4.dll with our PR_Write_H,
	// Note nspr4.dll must already be
	// loaded in process space
	Firefox.Initialize("PR_Write", "nspr4.dll", PR_Write_H);
	// Write jump instruction on orginal function address
	Firefox.Start();
	return TRUE;
}

// our overriding function
DWORD PR_Write_H (DWORD *fd,  void *buf,DWORD amount)
{
	// reset hooks, this will replace the jump instruction to original data
	Firefox.Reset();
        // You may skip the code shown below and call the original function directly
        // since after calling Firefox.Reset() the address of the original function,
        // now contains the original function's data
        // point prw(function) to original function (optional)
	prw = (prWrite)Firefox.original_function;
        // log the headers
	write_log(log_file, (char*) buf);
	// call the real PR_Write function
	DWORD ret = prw(fd, buf, amount);
	// again place the jump instruction on the original function
	Firefox.Place_Hook();
	return ret;
}
예제 코드 > Netfilter 후킹

이 예제에서는 Netfilter(넷필터)를 사용하여 리눅스 커널에서 네트워크 트래픽을 변경할 수 있는 훅를 사용하는 방법을 보여준다.
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/skbuff.h>

#include <linux/ip.h>
#include <linux/tcp.h>
#include <linux/in.h>
#include <linux/netfilter.h>
#include <linux/netfilter_ipv4.h>

/* Port we want to drop packets on */
static const uint16_t port = 25;

/* This is the hook function itself */
static unsigned int hook_func(unsigned int hooknum,
                       struct sk_buff **pskb,
                       const struct net_device *in,
                       const struct net_device *out,
                       int (*okfn)(struct sk_buff *))
{
        struct iphdr *iph = ip_hdr(*pskb);
        struct tcphdr *tcph, tcpbuf;

        if (iph->protocol != IPPROTO_TCP)
                return NF_ACCEPT;

        tcph = skb_header_pointer(*pskb, ip_hdrlen(*pskb), sizeof(*tcph), &tcpbuf);
        if (tcph == NULL)
                return NF_ACCEPT;

        return (tcph->dest == port) ? NF_DROP : NF_ACCEPT;
}

/* Used to register our hook function */
static struct nf_hook_ops nfho = {
        .hook     = hook_func,
        .hooknum  = NF_IP_PRE_ROUTING,
        .pf       = NFPROTO_IPV4,
        .priority = NF_IP_PRI_FIRST,
};

static __init int my_init(void)
{
        return nf_register_hook(&nfho);
}

static __exit void my_exit(void)
{
    nf_unregister_hook(&nfho);
}

module_init(my_init);
module_exit(my_exit);
같이 보기

종료 후 상주 프로그램
후킹 프로그램의 목록

AGTH
임바부라주

임바부라 주의 위치
임바부라주(스페인어: Provincia de Imbabura)는 에콰도르 북부에 위치한 주로 주도는 이바라이며 면적은 4,587.51km2, 인구는 398,244명(2010년 기준), 인구 밀도는 87명/km2이다. 6개 지방 자치체를 관할한다. 북쪽으로는 에스메랄다스 주와 카르치 주, 동쪽으로는 수쿰비오스 주와 나포 주, 남쪽으로는 피친차 주, 서쪽으로는 에스메랄다스 주와 접한다.
주기
같이 보기

에콰도르의 주
| v t e에콰도르의 주 |
| --- | --- | --- |
|  아수아이주  볼리바르주  카냐르주  카르치주  침보라소주  코토팍시주  엘오로주  에스메랄다스주  갈라파고스주  과야스주  임바부라주  로하주  로스리오스주  마나비주  모로나산티아고주  나포주  오레야나주  파스타사주  피친차주  산타엘레나주  산토도밍고데로스차칠라스주  수쿰비오스주  퉁구라우아주  사모라친치페주  |  아수아이주  볼리바르주  카냐르주  카르치주  침보라소주  코토팍시주  엘오로주  에스메랄다스주  갈라파고스주  과야스주  임바부라주  로하주  로스리오스주  마나비주  모로나산티아고주  나포주  오레야나주  파스타사주  피친차주  산타엘레나주  산토도밍고데로스차칠라스주  수쿰비오스주  퉁구라우아주  사모라친치페주  |  |
| 전거 통제  |
| --- | --- |
국가:  프랑스  BnF 데이터  독일 
지리:  뮤직브레인즈 지역
잔트하우젠

잔트하우젠 구 시청
잔트하우젠(독일어: Sandhausen)은 독일 바덴뷔르템베르크주에 위치한 도시로 면적은 14.55km2, 인구는 14,672명(2014년 12월 31일 기준), 인구 밀도는 1,000명/km2이다. 행정 구역상으로는 카를스루에 현에 속한다. 하이델베르크에서 남쪽으로 7km 정도 떨어진 곳에 위치한다.
시 문장
2014년 FIFA 월드컵 아프리카 지역 최종 예선

2014년 FIFA 월드컵 아프리카 지역 최종 예선은 2차 예선의 각 조 1위 10개 팀이 두 팀씩 나누어 홈 앤드 어웨이 경기를 하여 승자 5개 팀이 본선에 진출한다. 1차전은 2013년 10월 12일부터 10월 15일, 2차전은 2013년 11월 15일부터 11월 19일 사이에 열렸다.
참가국 및 시드 배정

추첨식은 2013년 9월 16일에 이집트 기자에서 열렸으며, 시드 배정은 2013년 9월 FIFA 랭킹을 기준으로 하였다.
| 조 | 팀 | FIFA 랭킹 |
| --- | --- | --- |
| A |  에티오피아 | 93 |
| B |  튀니지 | 46 |
| C |  코트디부아르 | 19 |
| D |  가나 | 24 |
| E |  부르키나파소 | 51 |
| F |  나이지리아 | 36 |
| G |  이집트 | 50 |
| H |  알제리 | 28 |
| I |  카메룬 | 61 |
| J |  세네갈 | 66 |
경기 결과

| 팀 1 | 합계 | 팀 2 | 1차전 | 2차전 |
| --- | --- | --- | --- | --- |
| 코트디부아르  | 4 - 2 |  세네갈 | 3 - 1 | 1 - 1  |
| 에티오피아  | 1 - 4 |  나이지리아 | 1 - 2 | 0 - 2  |
| 튀니지  | 1 - 4 |  카메룬 | 0 - 0 | 1 - 4  |
| 가나  | 7 - 3 |  이집트 | 6 - 1 | 1 - 2  |
| 부르키나파소  | 3 - 3 (a) |  알제리 | 3 - 2 | 0 - 1 |
경기 결과 > 1경기

| 0 | 1 | 2 | 3 | 4 | 5 | 6 |
| --- | --- | --- | --- | --- | --- | --- |
2013년 10월 12일 17:00 (UTC+0): 
| 2013년 10월 12일 17:00 (UTC+0) | 코트디부아르  | 3 - 1  |  세네갈 | 스타드 펠릭스 우푸에부아니, 아비장 |  |  |
| 2013년 10월 12일 17:00 (UTC+0) | 드로그바  3′ (페널티골) L. 사네  14′ (자책골) 칼루  49′ |  | P. 시세  90+4′ | 스타드 펠릭스 우푸에부아니, 아비장 |  |  |

| 0 | 1 | 2 | 3 | 4 | 5 | 6 |
| --- | --- | --- | --- | --- | --- | --- |
2013년 11월 16일 19:00 (UTC+0): 
| 2013년 11월 16일 19:00 (UTC+0) | 세네갈  | 1 - 1  |  코트디부아르 | 스타드 무함마드 V, 카사블랑카 (모로코) |  |  |
| 2013년 11월 16일 19:00 (UTC+0) | 소우  72′ (페널티골) |  | 칼루  90+4′ | 스타드 무함마드 V, 카사블랑카 (모로코) |  |  |

코트디부아르 총 4 - 2 스코어로 본선에 진출.
경기 결과 > 2경기

| 0 | 1 | 2 | 3 | 4 | 5 | 6 |
| --- | --- | --- | --- | --- | --- | --- |
2013년 10월 13일 16:00 (UTC+3): 
| 2013년 10월 13일 16:00 (UTC+3) | 에티오피아  | 1 - 2  |  나이지리아 | 아디스아바바 스타디움, 아디스아바바 |  |  |
| 2013년 10월 13일 16:00 (UTC+3) | 아세파  57′ |  | 에메니케  67′, 90′ (페널티골) | 아디스아바바 스타디움, 아디스아바바 |  |  |

| 0 | 1 | 2 | 3 | 4 | 5 | 6 |
| --- | --- | --- | --- | --- | --- | --- |
2013년 11월 16일 16:00 (UTC+1): 
| 2013년 11월 16일 16:00 (UTC+1) | 나이지리아  | 2 - 0  |  에티오피아 | U.J. 에수에네 스타디움, 칼라바르 |  |  |
| 2013년 11월 16일 16:00 (UTC+1) | 모지스  20′ (페널티골) 오비나  81′ |  |  | U.J. 에수에네 스타디움, 칼라바르 |  |  |

나이지리아 총 4 - 1 스코어로 본선에 진출.
경기 결과 > 3경기

| 0 | 1 | 2 | 3 | 4 | 5 | 6 |
| --- | --- | --- | --- | --- | --- | --- |
2013년 10월 13일 18:00 (UTC+1): 
| 2013년 10월 13일 18:00 (UTC+1) | 튀니지  | 0 - 0  |  카메룬 | 11월 7일 경기장, 라데스 |  |  |
| 2013년 10월 13일 18:00 (UTC+1) |  |  |  | 11월 7일 경기장, 라데스 |  |  |

| 0 | 1 | 2 | 3 | 4 | 5 | 6 |
| --- | --- | --- | --- | --- | --- | --- |
2013년 11월 17일 15:00 (UTC+1): 
| 2013년 11월 17일 15:00 (UTC+1) | 카메룬  | 4 - 1  |  튀니지 | 스타드 아마두 아히조, 야운데 |  |  |
| 2013년 11월 17일 15:00 (UTC+1) | 웨보  3′ 무칸조  29′ 마쿤  65′, 85′ |  | 아카이치  50′ | 스타드 아마두 아히조, 야운데 |  |  |

카메룬 총 4 - 1 스코어로 본선에 진출.
경기 결과 > 4경기

| 0 | 1 | 2 | 3 | 4 | 5 | 6 |
| --- | --- | --- | --- | --- | --- | --- |
2013년 10월 15일 16:00 (UTC+0): 
| 2013년 10월 15일 16:00 (UTC+0) | 가나  | 6 - 1  |  이집트 | 바바 야라 스타디움, 쿠마시 |  |  |
| 2013년 10월 15일 16:00 (UTC+0) | 잔  5′, 53′ 고마  23′ (자책골) 와리스  44′ 문타리  72′ (페널티골) 아추  88′ |  | 아부트리카  41′ (페널티골) | 바바 야라 스타디움, 쿠마시 |  |  |

| 0 | 1 | 2 | 3 | 4 | 5 | 6 |
| --- | --- | --- | --- | --- | --- | --- |
2013년 11월 19일 18:00 (UTC+2): 
| 2013년 11월 19일 18:00 (UTC+2) | 이집트  | 2 - 1  |  가나 | 6월 30일 경기장, 카이로 |  |  |
| 2013년 11월 19일 18:00 (UTC+2) | 자키  25′ 나기  83′ |  | 보아텡  88′ | 6월 30일 경기장, 카이로 |  |  |

가나 총 7 - 3 스코어로 본선에 진출.
경기 결과 > 5경기

| 0 | 1 | 2 | 3 | 4 | 5 | 6 |
| --- | --- | --- | --- | --- | --- | --- |
2013년 10월 12일 16:00 (UTC+0): 
| 2013년 10월 12일 16:00 (UTC+0) | 부르키나파소  | 3 - 2  |  알제리 | 스타드 드 4-투드, 와가두구 |  |  |
| 2013년 10월 12일 16:00 (UTC+0) | 피트로이파  45+2′ D. 코네  65′ 방세  86′ (페널티골) |  | 페굴리  50′ 메자니  68′ | 스타드 드 4-투드, 와가두구 |  |  |

| 0 | 1 | 2 | 3 | 4 | 5 | 6 |
| --- | --- | --- | --- | --- | --- | --- |
2013년 11월 19일 19:15 (UTC+1): 
| 2013년 11월 19일 19:15 (UTC+1) | 알제리  | 1 - 0  |  부르키나파소 | 스타드 무스타파 타커, 블리다 |  |  |
| 2013년 11월 19일 19:15 (UTC+1) | 부게라  49′ |  |  | 스타드 무스타파 타커, 블리다 |  |  |

알제리 총 3 - 3 스코어, 원정 다득점 우세로 본선에 진출.
같이 보기

2014년 FIFA 월드컵 아프리카 지역 1차 예선
2014년 FIFA 월드컵 아프리카 지역 2차 예선
생태형성

생태형성(Ecopoiesis)은 로버트 헤인즈(Robert Haynes)가 만든 신조어다. 그리스어의 집이라는 뜻의 οικος와 생산이라는 뜻의 ποιησις의 조합으로 만들어졌다. 생태형성은 생태계의 근원을 만드는 것을 의미한다. 헤인즈의 설명에 따르면, 생태형성은 현재는 생명이 없는 불모지 행성에서 지속될 수 있는 생태계를 형성하는 것이다. 생태형성은 테라포밍의 첫단계 중 하나다. 생태형성의 기본 단계는 일반적으로 미생물을 퍼뜨리는 것이다. 행성의 조건이 지구와 비슷해짐에 따라 식물을 가져가 심는데, 그렇게 함에 따라 산소의 생산이 촉진되며, 이론적으로는 그렇게 하여 행성이 마침내 동물의 생존이 가능하도록 만들 수 있다.
현재 연구 상황

Robotic Lunar Ecopoiesis Test Bed Principal Investigator: Paul Todd (2004)
같이 보기

테라포밍
애디슨 몽고메리

| 애디슨 몽고메리 Addison Montgomery |
| --- | --- |
《그레이 아나토미》의 등장인물
첫 등장: 그레이 시즌1 9화 "Who's Zoomin' Who?"
마지막 등장: 프라이빗 시즌6 13화 "In Which We Say Goodbye"
창작자: 숀다 라임스
배우: 케이트 월시
정보
성별: 여자
소속: 시애틀 그레이스 외과병원
직업: 의사
배우자: 데릭 셰퍼드(이혼)
애디슨 몽고메리(영어: Addison Montgomery)는 숀다 라임스가 제작한 TV 드라마 《그레이 아나토미》의 등장인물이자, 그 스핀오프 드라마 《프라이빗 프랙티스》의 주인공이다. 세계 톱클래스 실력의 신생아학 전문 외과의이다. 케이트 월시가 연기했다.
애하

| 애하 River of Love |
| --- | --- |
감독: 이형표
각본: 이형우
제작: 아세아필림
원작: 박수복
개봉일:  1967년 7월 7일 (1967-07-07) 
시간: 92분
국가:  대한민국
언어: 한국어
"애하"는 1967년 공개된 대한민국의 영화이다.
배역

신영균
윤일봉
고은아
한미자
정민
최삼
유계선
권창선
임성한