<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="http://rss.egloos.com/style/blog.xsl" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
	<title>홍텐님의 이글루</title>
	<link>http://hongten.egloos.com</link>
	<description>Windows,Hooking,Revese Engineering,악성코드
등을 다루는 블로그입니다 ^^</description>
	<language>ko</language>
	<pubDate>Wed, 12 Nov 2008 06:58:38 GMT</pubDate>
	<generator>Egloos</generator>
	<image>
		<title>홍텐님의 이글루</title>
		<url>http://md.egloos.com/img/samplelogo2.gif</url>
		<link>http://hongten.egloos.com</link>
		<width>80</width>
		<height>80</height>
		<description>Windows,Hooking,Revese Engineering,악성코드
등을 다루는 블로그입니다 ^^</description>
	</image>
  	<item>
		<title><![CDATA[ 코드엔진 다녀와서 생각해본것 ]]> </title>
		<link>http://hongten.egloos.com/2161588</link>
		<guid>http://hongten.egloos.com/2161588</guid>
		<description>
			<![CDATA[ 
  얼마전에 코드엔진 세미나에 갔다왔당..<br><br>약간 늦게 도착해서 그냥 눈요기나 하다가 올라꼬 했는데<br><br>스타크래프트 섹션이 있어서 (그게 젤 마지막 ㅠㅠ)<br>갠적으로 아직까지 스타를 즐기는 유저중 한명이다 -_-a<br><br>모 맵핵에 관한 애기였는데 구현방식은 이미 대중화가 되버린 단축키는 전역훅 걸고<br>인젝션은 createremoteThred 에&nbsp;대한 설명..<br><br>세미나 듣다가 과연 그 맵핵 루틴을 어떻게 발견하고 설명할까에 관심을 가졌지만<br>역시나 노가다..ㅋㅋ(역시 컴터 두대로 f7&amp;f8 신공)<br>좀더 체계적으로 빨리 발견할수 없을까라고 개인적으로 생각을 해본다.<br><br>애기가 샜는데 이제 왠만큼 보안쪽에 발담구시는 분은 인젝션이나 후킹에 대해서 한번쯤은<br>구현해보고 삽질을 해봤을 것이다. 그만큼 대중화가 되었고 이제는 구시대 기술쯤 와버린거 같다 -_-+<br><br>그런데 이런 기술들이 베이스들이 복합적으로 서로 얽히고 설켜 <br>다알아야 먹고 살수 있다는 결론에 이르게 된다...-_-;<br>(먼가 새로운 기술을 선도 해야하는데...되게 힘드네...)<br><br>아시다시피 이젠 솔루션들은 자기네 영역쌈 하는 후킹에 진절머리나고 <br>보다보면 지들끼리 인젝션걸고 난리 부르스 치고 메모리 access violation 난다고<br>사용자들 째려보고...쩝..컴터는 느려질때로 느려지고<br><br>이런 솔루션을 바이패싱할수 있는 가상화 시대가 도래하지 않았는가...(치트엔진의 dbvm이 소스도 공부해봐야겠당 -_-)<br><br>암튼 가상화로 바이패스되버리면 어떻게 방어해야할까...음..생각이 안난다.<br>가상화 하는 그 중간 매개체 공간에 솔루션이 또 덕지덕지 올려지지 않을까 개인적으로 생각해본다.<br><br>점점 이런 가상화가 발전하면 가상화 속에 가상화 마치 거울속에 거울이 되버리는 무한대 공간이 생겨나지 않을까?<br>이제 매트릭스로 가는군 고고고!!! ㅡ.ㅡ;			 ]]> 
		</description>
		<category>windows</category>

		<comments>http://hongten.egloos.com/2161588#comments</comments>
		<pubDate>Wed, 12 Nov 2008 06:52:12 GMT</pubDate>
		<dc:creator>홍텐</dc:creator>
	</item>
	<item>
		<title><![CDATA[ Windows 2003 Sever Terminal Service /console ]]> </title>
		<link>http://hongten.egloos.com/2157360</link>
		<guid>http://hongten.egloos.com/2157360</guid>
		<description>
			<![CDATA[ 
  모 프로젝트 하는도중 오랜만에 정석코스로 로칼 익스 휘리릭 돌리는 쾌감속에<br>터미널에 붙는 작업을 했다...<br><br>이게 왠걸 세션이 다 차서 로그인 할 수 없단다 ㅠ_ㅠ<br>그런데 보통 윈도우 서버를 사면 터미널 라이센서는 2개라고 한다...<br><br>그런데 /console 옵션을 주면 휘릭 뽕뽕 붙어 버린다<br>세션 다찼다고 내 치지도 않는다...<br><br>다른 리모트에서 같은 방법으로 접속하면 이미 접속된 /console 세션을 내쫒고<br>뒤에 붙은놈이 점령한다...이건 머지???? 버그인가??? 아님 원래 이런거???<br><br>이럼 보안에 취약하자나!_!			 ]]> 
		</description>
		<category>windows</category>

		<comments>http://hongten.egloos.com/2157360#comments</comments>
		<pubDate>Mon, 10 Nov 2008 09:52:09 GMT</pubDate>
		<dc:creator>홍텐</dc:creator>
	</item>
	<item>
		<title><![CDATA[ Activex Bof 취약점 테스트 및 Heap Spray를 이용한 Expolit ]]> </title>
		<link>http://hongten.egloos.com/1923882</link>
		<guid>http://hongten.egloos.com/1923882</guid>
		<description>
			<![CDATA[ 
  <p>이글은 재작년쯤에 작성 되어 진듯 보이네요...<br>지금 살펴보면 여기저기 실수 투성이지만 그래도 이걸 하면서<br>좀더 발전적인 연구를 할 수 있었고<br><br>어떤분의 ActiveX함수주소 찾기의 라는 문서에 미약한 발동을 걸었(?)다는 문서로 만족합니다.<br><br>지금보니 에휴네요 ㅎ_ㅎ;<br><br>그래도 갑자기 이 코드들이 필요해져서 블로그에 올립니다<br>인간의 메모리가 얼마나 미약한지 돌아서면 까먹네요...<br><br>PS.지금 다들 activeX는 이미 백년전의 애기인듯 전부 관심끄고 계신듯 보이는데(안그러신 분들한테 하는애기는 아님)<br>문제의 본질에 대해서 이해를 해야된다고 봅니다.<br><br>윈도우즈는&nbsp; Com으로 이루어 져있다는 사실을...<br>어떤 기술이 뜨고 사장되고를 반복되지만 결국&nbsp; Base는 사라지지 않는법이고..<br>또 그러한 유동적인 기술 흐름속에서 유동적으로 대처할수 있는 힘은 바로 기초입니다.<br><br><a href="http://pds9.egloos.com/pds/200808/05/56/activex_BOF_Heap_Spray_Exploit.pdf">activex_BOF_Heap_Spray_Exploit.pdf</a></p>			 ]]> 
		</description>
		<category>windows</category>

		<comments>http://hongten.egloos.com/1923882#comments</comments>
		<pubDate>Mon, 04 Aug 2008 15:44:47 GMT</pubDate>
		<dc:creator>홍텐</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 존티토 예언 ]]> </title>
		<link>http://hongten.egloos.com/1922406</link>
		<guid>http://hongten.egloos.com/1922406</guid>
		<description>
			<![CDATA[ 
  <p>존티토는 2036년에서 온 미국 군인으로 “2038년 세게가 맞이할 유닉스 버그(밀레니엄 버그와 비슷한 개념)를 해결하기 위해 군의 명에 따라 타임머신을 타고 2000년으로 날아왔다"고 주장하며 이름을 알렸습니다.</p><p>그는 인터넷 상에 남긴 예언이 하나씩 맞아 들어맞아 인터넷상에서 가장 유명한 예언가의 반열에 올랐습니다.</p><p>실제로 그의 예언 중 “미국에 광우병이 휩쓸 것”이라는 예언대로 2003년 미국본토에서 광우병이 발생했습니다. 또한 그의 “미국이 이라크를 공격할 것”이라는 예언도 맞아 떨어져 더욱더 그의 인기는 하늘 높이 올라갔습니다.<br>이제 그의 예언을 보시죠.</p><p>&nbsp;</p><p>&lt; 존티토의메세지 &gt;</p><p>&nbsp;</p><p>저는 미래에서 왔습니다..<br>2036년에서 지구로 왔습니다. 온 시각은 1998년 입니다.<br>제가 현재 지구에 태어난 날짜는 1976년 입니다.<br>저의 예상은 각 각 맞아 떨어졌습니다.&nbsp; <br>미국의 대 살인 무기 구하기 위한 이라크의 전쟁.. [석유가 주 원인이 아닙니다!..]<br>그리고 2003년 9월달 심각한 전세계 광우병.. 등 등 다 맞아 떨어졌습니다.<br>몇년 전에도 유언을 했지만 .. <br>한국에는 아주 불길한 일이 일어나르리라 보면 됩니다.. </p><p>&nbsp;</p><p>저는 2 차 세계대전 이후 3차 세계대전은 일어날지 꿈에도 생각 못했습니다.<br>전쟁은 13년 동안 계속 될 것입니다. 3차 세계대전은 보시다시피 "핵전쟁" 입니다. <br>유럽 과 러시아, 미국 , 중국이 전쟁을 일으킨 주 범 이라고 보시면 됩니다.</p><p>&nbsp;</p><p>&nbsp;ㅡ 존티토의 예언 ㅡ<br>일단 한국은 북한,대만,일본으로 합쳐집니다.&nbsp; 앞으로 약 10년 남았습니다.<br>일단 제 예언이 맞아 떨어지리라 믿습니다. 시간은 봐꿀수 있습니다.<br>당신들이 노력만 하면 이 예언은 봐꿀수 있으리라 믿습니다.<br>할 애기는 아주 많습니다.</p><p>&nbsp;</p><p>경제가 위험하네요 이 글을 써보니깐 -ㅅ-<br>미래의 한국은 정말 심각한 문제에 빠져 있습니다. 절 믿고 한번 봐주세요<br>저의 첫번째 예언은 2008년&nbsp; 내년 에는. 중국에서 베이징 올림픽이 일어납니다.<br>중국 하계 베이징 올림픽은 취소 될것입니다. 이게 첫번째 예언입니다.<br>내년에 기대를 해보시는것도 좋습니다.<br>그리고 제일 궁금한 제 3차 세계대전.. 2015년에 일어납니다..<br>2008년 에는 중국의 경제가 상당히 발달 합니다. <br>앞으로 6년 후면 중국이 미국을 따라 잡으리라 예상 됩니다.</p><p>&nbsp;<br>그리고 지구 제 3차 세계대전은 미국의 심한 손상을 입게 됩니다.<br>미국은 전쟁이 끝난 3년 후 6개의 국으로 나누어 집니다.<br>이건 절대 시나리오가 아닙니다.</p><p>2015년 발발 . 러시아가 미국에세 원자력 폭탄을 투여 합니다.<br>미국과 러시아의 냉전이 더욱 심각해졌다고 보면 됩니다.<br>이라크의 반란과 테러가 계속 발생합니다.<br>러시아는 이 기회를 통해 중국 과 바르샤바 동맹 군 을 투입하여 제 2차 이라크 전쟁을 소망했습니다.<br>이라크에 있던 미군은 패배 하였습니다.<br>미국은 여러가지 것으로 분노해 세계 평화군을 개입해 공산에 확대에 대흥한<br>나토까지 개흥함으로서, 모든 자본주의 국가들은 미국에 가담을 하였습니다.<br>이 때 일본은&nbsp; 어떤 이름을 모르는 독재자가 발생하여 또 다시 군국주의 전체주의로 돌아 슨걸로 압니다.</p><p>그러고 2017- 2월 2일- 이스라엘, 핵 2개 미국 LA,휴스턴 공격을 했습니다.<br>2017년 2 월 3 일 이스라엘과 전쟁 선전 포고.<br>2017년 2월 5일- 미국 [EX-78 ]핵 폭탄 3개 이스라엘.예루살렘,나사렛,베들레햄 공격하고 . 이스라엘 국민 2/3 사망하였습니다.]</p><p>2017년 2월 7일 북한이 핵을 폐개 한지 7년만에 다시 핵을 가동 시켰습니다.<br>2017년 2월 11일 -북한 미국 워싱턴 핵을 투하 하였슴니다..<br>2월 17일- 영국 [AF-90]핵폭탄&nbsp; 평양에다 투하를 하였습니다<br>2월 22일- 서울, 영국 핵폭탄으로 약10% 피해입고. 방사선물질 서울 까지 접근하고 난리가 하니였습니다.<br>2월 27일- 일본&nbsp; 비밀핵폭탄 중국 북경 공격. 북경이 초토화랄까. 초토화 됬습니다.<br>3월 10일- 독일&nbsp; 일본과 전쟁선포하고<br>3월 12일- 독일 비밀 병대 , 2일만에 훗카이도 상륙 을 했습니다<br>4월 23일- 독일 1군단 훗카이도 점령, 훗카이도 핵기지 공격.<br>5월 5일- 다시 UN평화의 회의 개최.<br>5월 12일- 이스라엘이 UN연합본부중 핵 폭탄투하. UN연합본부 붕괴 , 초토화.<br>5월 13일- 미국 태평양에서 핵폭탄 발사. 이스라엘. 공격<br>5월 21일- 한국 비밀리에 핵개발.<br>5월 27일- 독일 일본 도쿄와 나라현에 핵투하. 파괴됨<br>그 전 일본은 미국말을 안듣고 핵을 대량생산 합니다.</p><p>2차전때는 유럽 </p><p>전체, 일본, 북미의 국가들만 참전했지만, 지금은 전쟁의 시작이 공산주의과 자본주의 국<br>가들의 충돌로 이어졌기 때문에 전세계 국가들이 참전할 수 밖에 없었다.<br>일본이 미군말을 안듣고 핵무기를 대량 생산하자 미국은 일본에 경고를 주었지만 일본은 <br>무시했다. 미국은 다시 핵무기를 일본의 핵무기공장에 전격투하할 것을 명령했다.<br>그러나 일본은 이미 엄청난 양의 핵무기를 소유하고 있었기 때문에 모두 폭격할 순 없었다.</p><p>일본은 미국에 반격한다.<br>6월 15일 미국 대규모 핵폭탄 이스라엘 공격,. 이스라엘 반쪽이 방사선에 노출<br>미국이 이스라엘 에게 항복 요구. -&gt; 실패<br>7월 2일 한국 핵 개발완료 한국[어쩔수없이] 통일전쟁 선포합니다 ...<br>7월 16일 한국,중국 핵으로 인해 협상 한국 % 북한 중국과의 국가경계선 공격. <br>대규모 북한 한국 대규모 미사일 중국 공격 - 실패<br>7월 29일- 북한 대규모 미사일 중국 재 공격. - 실패<br>8월&nbsp; 18일 미국의 컴퓨터 오류로 많은 문제 발생.<br>8월 25일 최고의 하락 : 전세계의 주가와. 경제력 하락, 계속 사망자 속출, 방사선 물질로 대기권 오염. <br>핵폭발과 함께 나오는 열로인해 오존층 대다수 파괴갑니다.<br>8월 30일- 러시아 폭탄 미국 공격 . <br>9월 8일 미군 - 러시아 재 공격<br>미국 러시아 계속 전쟁*미러전쟁[4년기]&nbsp; 러시아와 미국, 전역에 초토화. 전세계는 엄청난 피해를 입음<br>시간은 흘러 흘러 </p><p>2023년까지 ㅡ 인구중, 13억명 사망.&nbsp; ㅡ</p><p>휴전이 끝나기가 무섭게 미국은 국방비에 거의 나라의 모든 돈을 물쏟듯 퍼부었다.<br>유럽연합은&nbsp; 국방비는 물론, U.S.E의 단결에 힘썼다<br>중국과 러시아는 국토에 심각 한 협상을 내놓았지만 중국의 국민소득을 높이게 돈을 대 달라는 조건을 <br>러시아가 거절하여 협상은 해체되었고, 얼마 후 러시아가 국방비에만 힘써준다는 내<br>용으로 협상을 했지만 3차 대전때 이미 백성들이 쥐어짜여 있어서 중국이 거절했다</p><p>2023년 12월 말 유럽 연합 재 탄생.</p><p>2023년 12월 13일 미국 - 중국 참혹하게 전쟁. 중국 인구 지금까지. 약 반쪽 잃다.<br>2023년 12월 30일 독일 , 북한 전쟁 휴전<br>2024 -1-8- 일본군 러시아에 기습 , 러시아 반격<br>2024-1-12- 일본 국민 엄청난&nbsp; 해외 피난 시작<br>지금까지 일본 인구 3.8/5 가 감소 당했습니다.<br>2024 2월 7일&nbsp;&nbsp; 러일 휴전<br>2024&nbsp; 3달도 되지않는체 5월 14일 러 일 2차 공격 시작<br>2024년 8월 13일 시베리아 비밀장소에 핵무기를 모아 두었다가 지중해,<br>많은 지역과 미국의 플로리다 주 ,&nbsp; 각지 유럽에 핵 투여 <br>로마와 피렌체, 독일 베를린과 프랑크푸르트, 덴마크 코펜하겐 등 핵세례를 퍼붓고 점령당했다.</p><p>아시다시피 (저도 그렇지만...) 이번 베이징 올림픽 계기로 이 예언의 진위여부를 판단해볼까 합니다.<br>물론 존티토의 예전 예언들은 이때까지 얼추 비슷하게 맞아 떨어가지만서도요...<br>이런 종말론은 끊임없이 예고되지만 ..<br>하나 흥미로운 사실은 대부분의 예언가들은 특히 마야부족의 예언가,또는 웹봇을 이용하여 미래를 예측하는<br>것을 이용하여 미래를 살펴본 결과 대부분 2010년대 쯤에 세계멸망을 예언을 했습니다.<br>(우연의 일치 인가요?)</p><p>다음은 존티토 예언의 신빙성을 뒷바침할만한 기사들입니다. 제가 스크랩한 기사외에도 꽤 흥미로운<br>사실들이 많으니 한번 찾아보심이...<br><strong>- 존티토 예언 : 자신의 타임머신 공개 -</strong></p><p align="left">2000년 11월 그는 웹 BBS에 자신이 찍은 타임머신의 사진을 공개하였는데 <br>2036년에 타임머신은 매우 보편화 되었고 자신의 타임머신은 미국 제너럴 <br>일렉트릭사가 생산한 것으로 차에 장착하여 사용, 마치 백투터 퓨처의 <br>주인공처럼 과거로 돌아갈 수 잇다고 말했습니다. 그리고 그는 그 타임머신을 <br>조작하는 설명서를 BBS에 올렸고 지금까지도 많은 네티즌들이 그것을 연구중에 있습니다.</p><p>미얀마의 사이클론 피해와 중국 대지진, 변종 조류독감의 출현으로&nbsp;존티토의 예언이 점점 실현되어 가는듯한 느낌이 든다. 영국정부가 추정하는 미얀마 사이클론 사망자 및 실종자 수는 21만 7000여명이라고 하고, 중국 대지진의 사망자 수는 10만 명이 될 수도 있다는 전망이다. 변종 조류독감은 전 세계 인구의 30%를 죽일 수도 있다고 하니 이대로 간다면 인류에게 미래는 없을지도 모를 일이다. <br>존티토의 사이트 <a href="http://www.johntitor.com/"><span style="COLOR: #0066cc">www.johntitor.com</span></a><br><br>존 티토의 예언 중 타임머신 개발과 관련해 유럽입자물리연구소란 단어로 뉴스를 검색해보니 아래와 같은 내용의 기사가 검색되었다.<br><br><br><table cellspacing="0" cellpadding="0" width="560" align="center" border="0"><tbody><tr><td class="08_vtit" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 30px; PADDING-TOP: 0px" align="middle">시간여행 가능한 ‘타임터널’ 5월 실험 </td></tr><tr><td class="08_vtext"><div class="08_vtext" id="articleContent"><!-- 포토 시작 --><table cellspacing="3" cellpadding="3" width="360" align="left" border="0"><tbody><tr><td><table cellspacing="0" cellpadding="0" align="left" border="0"><tbody><tr><td><img src="http://nownews.seoul.co.kr/img/upload/2008/02/08/SSI_20080208151320_V.jpg" border="0"></td></tr><tr><td height="2"></td></tr><tr><td class="teal" style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; PADDING-TOP: 6px" bgcolor="#f1f1f1"></td></tr></tbody></table></td></tr></tbody></table><!-- 포토 끝 -->원자분열 실험의 영향으로 시간여행이 가능한 ‘타임터널’이 생길수 있다는 주장이 제기됐다. <p>러시아의 스테콜로프 수학연구소(Steklov Mathematical Institute)의 수리물리학자 이리나 아레프에바(Irina Aref’eva) 교수와 이고르 볼로비치(Igor Volovich) 박사가 원자 분열 실험에 의한 타임터널 생성 가능성을 주장했다고 과학 전문지 뉴사이언티스트가 보도했다. <p>이들이 타임터널의 가능성을 주장한 실험은 오는 5월 예정된 유럽입자물리연구소(CERN)의 원자분열 실험. <p>CERN은 ‘빅뱅 이론’과 관련해 우주의 생성 직후 상황을 연구하기 위한 실험을 계획하고 있다. 제네바 인근 지하 공간에서 실시될 이 실험에서 빅뱅 바로 뒤의 엄청난 빛과 에너지를 원자분열을 통해 재현할 예정이다. <p>러시아의 과학자들은 이 실험 과정에서 우주 조직의 균열이 생길 수 있다고 주장했다. <p>이들은 아인슈타인의 상대성 이론을 근거로 “미립자가 빛에 가까운 속도로 충돌하면서 시간의 문이 열리게 될 것”이라며 “만약 에너지가 충분하다면 현재와 미래를 잇는 시간터널도 가능하다.”고 밝혔다. <table cellspacing="0" cellpadding="8" align="right" border="0"><tbody><tr><td><!--google_ad_client = 'pub-4721384676551077';/* 나우뉴스 기사내부 신규 250x250 */google_ad_slot = '8890791942';google_ad_width = 250;google_ad_height = 250;//--></td></tr></tbody></table><!-- 광고 right --><p>그러나 CERN의 브레인 콕스 박사는 “상상력 좋은 SF소설에 불과할 뿐”이라며 러시아 과학자들의 주장을 일축했다. 이어 “우주공간의 물질과 우주선의 충돌에 의해 생기는 에너지는 우리가 만들 수 있는 것보다 훨씬 크다. 그러나 지금까지 단 한번도 시간을 벗어나는 일은 없었다.”고 덧붙였다. <p>사진=인디펜던트 온라인 (independent.co.uk) </p></div></td></tr></tbody></table><br><strong><span style="FONT-SIZE: 170%">- 존티토 예언이 적중했던 사건 -</span></strong> </p><p align="left">&nbsp;</p><p align="center">&nbsp;</p><p align="center"><img height="215" alt="" src="http://i.kdaq.empas.com/imgs/qrsi.tsp/8217815/10714438/0/1/A/2008-06-03%2014;17;16.jpg" width="225" border="0"> <br></p><p align="left"><span style="COLOR: #ff0000">1. 타임머신의 원리 : 미니블랙홀 예언</span></p><p align="left">&nbsp;2000년 11월 2일 존티토는 웹상에서 그들의 시대인 타임머신은 미니 블랙홀로 <br>만들어지고 있다고 말하며 자신이 이 이야기를 한지 1년도 안되어서 CERN(유럽인자물리연구소)은 <br>자신이 말한 이론이 사실임을 공포할 것이라고 단언했습니다.</p><p align="left">그리고 2001년 말 존티토가 2001년을 떠난 후 CERN은 미니블랙홀로 타임머신을 제작할 <br>수 있다는 원리를 발표했습니다.</p><p align="left">&nbsp;<span style="COLOR: #ff0000">2. 2003년 미국 광우병 예언</span></p><p align="left">2000년 11월 25일 그는 광우병이 미국을 휩쓸 것이라고 단언하였으며 <br>2003년 12월 광우병이 미국 본토에서 발생하였습니다.</p><p align="left"><span style="COLOR: #ff0000">3. 제 2차 이라크 전쟁 예언</span></p><p align="left">2001년 2월 그는 미국 정부가 대형살상 무기를 찾는 다는 것을 이유로 이라크를 <br>공격할 것을 예언하였고 03년 3월 부시 대통령은 확실히 이 이유로 제 2차 이라크 <br>전쟁을 일으켰습니다.</p><p align="left"><span style="COLOR: #ff0000">4 . 동남아 대&nbsp; 재난 예언</span></p><p align="left">그는 2001년 1월 29일에 '너희 들에게 미래의 재난의 발생에 대하여 이야기해주는 <br>것에 대해 나는 어떤 즐거움도 느끼지 못한다. 예를 들면 광우병, 중동전쟁, <br>머나먼 섬들에서 고통받는 사람들 등 내가 그들에게 10만여명이 죽을 것이란 것을 <br>알려줬을 때 듣는 이들의 일그러진 얼굴을 어떤 말로도 비유할 순 없다'고 말했습니다. </p><p align="left"><br>존티토의 팬들은 그의 웹사이트를 만들곤 이 이야기가 무슨 뜻인지 알아내기 <br>위해 노력하였습니다. 그리고 2004년 12월 동남아 대 재난이 발생하였을 때 <br>그들은 '머나먼 섬에서 고통받는 사람들'과 10만명이 죽을 것이라는 이야기를 <br>동남아 대 재난을 예언한것이라고 믿었습니다.</p><p align="left">&nbsp;</p><p align="left"><br><span style="COLOR: #ff0000">5. 2004년이후 하계올림픽 취소</span></p><p align="left">&nbsp;<br>하계올림픽 취소는 되지 않았지만...음...중국 베이징 올림픽이 취소될수 있는 기사들입니다.<br><br></p><div class="G24" id="ct_t"><span style="FONT-SIZE: 170%">유럽의회 “베이징 올림픽 거부 고려” <br></span></div><p align="left">유혈사태로 번진 <a class="keyword" href="http://search.donga.com/donga/search.php?keyword_str=티베트 &amp;pageType=all" target="_blank"><span style="COLOR: #0b0bcd">티베트</span></a>(<a class="keyword" href="http://search.donga.com/donga/search.php?keyword_str=중국 티베트&amp;pageType=all" target="_blank"><span style="COLOR: #0b0bcd">중국</span></a>명 시짱·<span class="hanja">西</span><span class="hanja">藏</span>) 사태와 관련해 중국 정부가 달라이 라마와의 대화를 거절한 채 관련자 처벌 방침을 강력히 고수하면서 국제사회와의 갈등이 커지고 있다.<br><br>한스게르트 푀테링 <a class="keyword" href="http://search.donga.com/donga/search.php?keyword_str=유럽의회 티베트&amp;pageType=all" target="_blank"><span style="COLOR: #0b0bcd">유럽의회</span></a> 의장은 중국이 티베트 망명정부와 대화를 계속 거부할 경우 8월 <a class="keyword" href="http://search.donga.com/donga/search.php?keyword_str=베이징 티베트&amp;pageType=all" target="_blank"><span style="COLOR: #0b0bcd">베이징</span></a>(<span class="hanja">北</span><span class="hanja">京</span>) <a class="keyword" href="http://search.donga.com/donga/search.php?keyword_str=올림픽 티베트&amp;pageType=all" target="_blank"><span style="COLOR: #0b0bcd">올림픽</span></a> 거부를 고려할 수 있음을 밝혔다고 DPA통신이 23일 보도했다.<br><br>푀테링 의장은 독일 주간신문 빌트 암 존타크와의 인터뷰에서 “중국 정부가 달라이 라마와 협상을 시작하지 않는다면 베이징 올림픽 거부를 고려할 수 있을 것”이라고 말했다. 티베트 망명정부도 22일 “지금은 어느 때보다도 달라이 라마와 중국 정부의 대화가 필요한 때”라고 밝혔다.<br><br>그러나 중국 공산당 기관지 런민(<span class="hanja">人</span><span class="hanja">民</span>)일보는 이날 사설에서 “중국은 올림픽 개최를 방해해 독립을 얻어내려는 티베트 독립 세력의 음모를 철저히 분쇄할 것”이라며 달라이 라마와 대화하라는 국제사회의 요구를 일축했다고 AFP통신이 전했다. 한편 중국 국영 신화통신은 티베트 지방정부 관계자의 말을 빌려 “이번 사태의 진원지인 티베트의 중심 도시 라싸(<span class="hanja">拉</span><span class="hanja">薩</span>)의 폭동 진압 과정에서 시민 21명과 경찰 1명 등 모두 22명이 숨졌다”고 이날 보도했다. 13명이 숨졌다는 중국 정부의 앞선 발표보다 9명이 늘어난 수치지만 시위대 사망자 수는 여전히 포함되지 않았다. 티베트 망명정부는 “시위대 가운데 99명이 사망했다”고 주장하고 있다.<br><br>이상록 기자 <a href="mailto:myzodan@donga.com">myzodan@donga.com</a><br><br><table cellspacing="0" cellpadding="0" width="100%" border="0"><tbody><tr><td><span style="FONT-SIZE: 170%"><font class="b_black">중국 장바이러스 확산 올림픽 비상</font></span></td></tr><tr><td><p style="MARGIN-TOP: 10px"><table style="MARGIN-BOTTOM: 8px; MARGIN-RIGHT: 8px" cellspacing="0" cellpadding="0" align="right" border="0"><tbody><tr><td align="middle"><!-- 관련 사진 --><!-- 관련 사진 --></td></tr></tbody></table><font class="last" id="content"><!--HANKOOKI_DEF GISA_CONTENTS-->중국 안후이(安徽)성 등 일부 지역에 국한됐던 장바이러스(엔테로 바이러스71)가 베이징(北京)을 비롯한 중국 전역으로 크게 확산, 올림픽을 앞둔 보건 당국에 비상이 걸렸다. <p>6일 베이징 신경보(新京報)는 지난달부터 안후이성에서 5,840명의 감염자를 낳은 엔테로 바이러스가 퍼져 베이징에서도 1,482명의 환자가 발생했다고 전했다. 수족구(手足口)병을 일으키는 엔테로 바이러스가 베이징에 창궐한 것은 23년만의 일로, 감염 어린이들이 다니던 베이징의 유치원들이 문을 닫기 시작했다.</p></font></td></tr></tbody></table><br><strong><span style="FONT-SIZE: 170%">中 수류탄 테러, 경찰 16명 사망, 16명 부상(상보)</span></strong> <br><br>중국 신장(新疆)위구르 자치구에 있는 카슈가르(카스) 지역에서 국경순찰경찰서가 습격을 받아 16명의 경찰이 사망하고 16명이 부상당했다고 4일(현지시간) 블룸버그통신이 보도했다. <br>4일 오전 8시께 2대의 차량이 경찰서로 돌진, 2개의 수류탄이 터지면서 경찰들이 습격을 당한 것으로 나타났다.<br>2대의 덤프트럭에서 수류탄을 던진 용의자 2명은 현재 체포된 상태며 신원은 아직 확인되지 않고 있다.<br>사고가 발생한 카슈가르는 타지키스탄과 국경을 나란히 하고 있는 변방 지역으로 수니파 이슬람교도들이 밀집한 곳이다.<br>이번 사건은 올림픽 개막을 4일 앞으로 남겨두고 나타난 것이어서 테러에 대한 불안 요소를 더욱 높이고 있다. 베이징올림픽 개막을 앞두고 국제 테러조직이나 분리 독립을 원하는 소수민족 무장단체가 공격했을 가능성도 제기되고 있다.<br><br>또한 개막일날 날씨가 매우 안좋다고 합니다.<br>그외 중국 대지진,티벳 유혈 사건등 많은 위험 요소를 않고 개막함은 틀림없는 사실이네요.</p>			 ]]> 
		</description>
		<category>기사</category>

		<comments>http://hongten.egloos.com/1922406#comments</comments>
		<pubDate>Mon, 04 Aug 2008 05:28:38 GMT</pubDate>
		<dc:creator>홍텐</dc:creator>
	</item>
	<item>
		<title><![CDATA[ Com explorer ]]> </title>
		<link>http://hongten.egloos.com/1911980</link>
		<guid>http://hongten.egloos.com/1911980</guid>
		<description>
			<![CDATA[ 
  <p>유용한 툴이 있어서 소개해드립니다. 바로 "Com explorer"<br>아쉽게도 상용툴입니다만 30일간의 기간을 쓸수 있습니다.<br><br>이툴의 장점은 현재 윈도우 OS에 저장되어있는 모든 Com의 객체를 눈에 보기 쉽게 <br>볼수 있다는 것입니다(사실 Ole viewer로도 간파 할수 있지만 사실 이것보다는 좀더 직관적이지만<br>depth있게는 보기 힘듬...)<br><br>가령 이툴은 현재 불필요한 Com 모듈이 설치 되어있을 경우 <br>빨간색 느낌표를 표시합니다..<br><br>또한 밑에 그림에서 볼수 있듯이 오른쪽 하단에 관련 com모듈의 모든 레지스트리를 표시 해줍니다.<br>해당 툴은 다음과 같은 사이트에서 볼수 있습니다.<br><a href="http://www.4developers.com/com/index.htm">http://www.4developers.com/com/index.htm</a><br><br><div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds8.egloos.com/pds/200807/31/56/e0034556_48912d883ffc6.png" width="500" height="387.323943662" onclick="Control.Modal.openDialog(this, event, 'http://pds8.egloos.com/pds/200807/31/56/e0034556_48912d883ffc6.png');" /></div></p>			 ]]> 
		</description>
		<category>windows</category>

		<comments>http://hongten.egloos.com/1911980#comments</comments>
		<pubDate>Thu, 31 Jul 2008 03:12:16 GMT</pubDate>
		<dc:creator>홍텐</dc:creator>
	</item>
	<item>
		<title><![CDATA[ AES 소스 ]]> </title>
		<link>http://hongten.egloos.com/1907177</link>
		<guid>http://hongten.egloos.com/1907177</guid>
		<description>
			<![CDATA[ 
  AES 암호화 방식은 예전에 DES 암호화 방식을 보안한 방식입니다. 흔히 블록 암호화 방식을 쓰고 있는데<br>16바이트 특정 키와 블록 할 바이트 영역(16,24,32) 를 설정한뒤 암호화 하는 방식입니다.<br><br>이 알고리즘은 오픈 소스이므로 누구나 갖다 쓸 수 있습니다.<br><br>코드 사용법은 이러합니다<br><br>#define Key "1234567890123456" <br><br>이렇게 16바이트 키를 설정한뒤(테스트 해본 결과 굳이 16바이트를 맞춰 주지 않아도 됩니다)<br><br>////////////////////////////슈도 코드///////////////////////////////////////////////////////<br>char *szHeader = new char[1024000]; //1mb정도 설정<br>//visual c++에서는 char buf[1024000];이런식으로 크게 버퍼를 할당하면 런타임시 에러가 납니다.<br>//유닉스에서는 그렇지 않다고 하네요...그래서 위처럼 동적할당으로 잡아줘야 합니다 ㅠ_ㅠ<br>&nbsp;<br>hFile_Header=CreateFile(m_szFilePath,GENERIC_READ,0,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);<br>&nbsp;if(hFile_Header != INVALID_HANDLE_VALUE){<br>&nbsp;&nbsp;ReadFile(hFile_Header,szHeader,HEADER_SIZE_OFFSET,&amp;dwRead_Header,NULL);<br>&nbsp;&nbsp;CloseHandle(hFile_Header);<br>&nbsp;}<br>&nbsp;CRijndael oRijndael;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //AES 클래스 객체 할당<br>oRijndael.MakeKey(Key,CRijndael::sm_chain0,16,16);<br>oRijndael.ResetChain();<br>memcpy(szHeader_In,szHeader,HEADER_SIZE_OFFSET);<br>oRijndael.Decrypt(szHeader_In,szHeader_Out,Size,CRijndael::CBC);<br><br>여기서는 szHeader 버퍼에는 특정 파일을 읽었을때의 값입니다<br>Decrypt 할때 주의점은 세번째 아규먼트의 Size값이 MakeKey에서 할당한 4번째 인자 값과 <br>바이트 수가 일치 하여야지 블록 암호화가 이루어 집니다.<br><br><br>가령 위에서는 16으로 설정되어 있으면 16배수로 블록사이즈를 잡아줘야 합니다.<br>또한 어떤것은 512바이트 마다 키값을 재할당하여 encrypt한 경우도 있으니 그 바이트 영역마다 <br>키값을 설정하여 decrypt를 수행해야 합니다.<br>PS. AES 암호화 소스코드를 첨부 파일로 올려 놓습니다.(사실 제가 필요할때마다 갖다쓰기 위해서 ...-_-;)<a href="http://pds9.egloos.com/pds/200807/29/56/Rinjdael.zip">Rinjdael.zip</a>			 ]]> 
		</description>
		<category>c++</category>

		<comments>http://hongten.egloos.com/1907177#comments</comments>
		<pubDate>Tue, 29 Jul 2008 07:51:49 GMT</pubDate>
		<dc:creator>홍텐</dc:creator>
	</item>
	<item>
		<title><![CDATA[ How to MFC Reverse Engineering ]]> </title>
		<link>http://hongten.egloos.com/1882971</link>
		<guid>http://hongten.egloos.com/1882971</guid>
		<description>
			<![CDATA[ 
  <p>비도오고 그냥 즉흥적으로 쓴글이므로 양해를 바랍니다...<br>물론 오덕후급의 리버서들에게는&nbsp;이미 100년전에 알고 있거나 지루한&nbsp;애기입니다.<br>그냥 그런 애기 입니다.<br><br>MFC 프로그램에 대한 리버싱<br><br>mfc 를 리버싱 하기란 어떻게 보면 간단하면서 어려운 것이다.<br>일단 왜냐면 첫째로 mfc함수가 wrapper함수 라는 것이다. <br>API와는 다른것이다. API경우 특정 함수 콜부분에 콜을 하거나..(절차지향적 프로그래밍 기법을 말한다)<br>물론 윈도우프로그래밍은 항상 메시지에 의존한 프로그래밍 기법을 이용하여서<br>절자지향적인 리버스와는 그 본질 부터가 다르다.<br>하지만 정확한 지점의 부분 가령 사용자로 부터 어떤 요청이 이루어지면<br>그요청이 이루어지는 부분은 한 부분씩 이루어 진다. 하지만 이 한부분을 찾기가 애매하다.</p><p>기본적으로 디버거로&nbsp; mfc류의 프로그램을 열면 대체로 pdb(심볼을 의미)를 이용하여 기본적인 함수 오버라이드에 대한<br>함수 이름을 출력해준다. 하지만 프로그래머가 기존의 오버라이드 함수를 쓰는 경우도 있지만<br>대부분 새롭게 정의한 클래스에서 오버라이드를 한다 .이는 디버거가 제대로 함수 네임을 들고 오지 못한다.</p><p>여기서 간단한 센스로 리버싱을 진행해야한다.<br>가령 지금 생각나는 간단한 프로그램을 생각해보자<br>프로그램에서 어떤 트레이의 메뉴중 사용자 정보를 클릭했다고 가정해보자.</p><p>그리고 그 보여주는 부분에는 사용자의 정보라던지가 출력된다.여기서 리버서는<br>간단히 출력되는 부분을 바꿔보고 싶다고 생각해보자.</p><p><br>먼저 어떤 함수를 breakpoint를 걸며 추적을 할것인가이다..<br>물론 메뉴에서 클릭을 한 행위는 윈도우에서 OnCommand라는 함수로써 오버라이드 함으로써 제공 되고있다.</p><p>하지만 수많은 클래스중 특히 프로그래머가 정의해놓은 클래스의 OnCommand의 이벤트를 찾기란 불가능하다<br>여기서 한가지 팁이 있다. C++의 상속성의 특징을 이용하는 것이다.</p><p>즉 여기서 팝업되는 화면의 기능은 CWnd(윈도우에 관련된 기능) 등을 정의한 클래스인데 주로 여기서의 함수를<br>오버라이딩을 하여 프로그래머의 자신의 클래스에서 함수를 오버라이딩해서 땡겨 쓴다.<br>그렇다면 결국 프로그래머가 정의한 함수를 찾지 못하더라도 디어셈블러에서 보여주는 CWnd의 OnCommand의 함수를<br>먼저 호출한다는 애기이고 이 말 즉슨 CWnd OnCommand의 함수 호출은 프로그래머가 오버라이딩한 함수를 호출한다는 <br>애기가 된다.<br>기본적으로 mfc가 정의하는 클래스들은 이렇다.(상속순으로 나열...)<br>CObject //거의 모든 MFC 클래스의 기반 클래스<br>CCmdType //이벤트를 받는 기능<br>CWinAPP //프로그램을 구동시키는 기능<br>CDocument // 데이터를 저장하고 처리하는 기능<br>CWnd //윈도우에 관련된 기능(눈에 보이는 오브젝트)<br>CFrameWnd&nbsp; //윈도우 프레임(외곽)을 관리하는 기능<br>CView //데이터를 보여주는 기능<br><br></p><p>물론 OnCommand를 브레이크 포인트 걸어봤자 결국에는 윈도우 함수들이 주루륵 호출 될것이다 이것은 역시 C++의<br>특징이다. 즉 그 이벤트에 대한 처리루틴들만이 우리는 trace하게 될것이다. 이것은 우리가 의도한 바는 아니다.</p><p>결국 거기서 데이터를 조작하건 사용자의 컨트롤을 제한하던 그 특정 처리를 위한 호출을 찾아야 한다.<br>그건 결국 경험에 의해서 이루어 지는데 다음과 같은 프로그램이 있다고 보자.<br>화면에서 보듯이 특정 기준점에 의해서 edit박스의 컨트롤을 활성화 하거나 비활성하는 기능이다.<br>우린 그쪽 위치에서 trace를 하기를 원한다.<br><div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds9.egloos.com/pds/200807/20/56/e0034556_4882e8ef04aba.png" width="500" height="417.486338798" onclick="Control.Modal.openDialog(this, event, 'http://pds9.egloos.com/pds/200807/20/56/e0034556_4882e8ef04aba.png');" /></div></p><p>위의 그림에서 기혼을 체크하면 밑의 배우자 정보의 오브젝트들이 활성화 되며 해제하면 비활성화 된다.<br></p><p><div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds8.egloos.com/pds/200807/20/56/e0034556_4882e95c79a2f.png" width="500" height="412.525879917" onclick="Control.Modal.openDialog(this, event, 'http://pds8.egloos.com/pds/200807/20/56/e0034556_4882e95c79a2f.png');" /></div><br>위의 그림에서 어떤 함수를 브레이크를 걸지를 알 수 있겠는가?<br><div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds8.egloos.com/pds/200807/20/56/e0034556_4882e99ec942f.png" width="500" height="253.877973113" onclick="Control.Modal.openDialog(this, event, 'http://pds8.egloos.com/pds/200807/20/56/e0034556_4882e99ec942f.png');" /></div>위의 그림의 루틴은 다음과 같이 작성 되어 집니다.<br><br>void CProfileDlg::OnCheck1() <br>{<br>&nbsp;// TODO: Add your control notification handler code here<br>UpdateData(TRUE); //UpdateData 의 인자값을 TRUE로 주면 사용자 컨트롤로 값이 멤버변수로&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //UpdateData 의 인자값을 FALSE로 주면 Value형 멤버 변수에 설정 되어 있는 값이 컨트롤 전송</p><p>&nbsp;m_ctrName.EnableWindow(m_bMarried);<br>&nbsp;m_ctrlAge.EnableWindow(m_bMarried);<br>}<br><br>위의 코드는 디어셈블에서 찾기는 사막에서 바늘정도의 수준입니다.(조금 덩치큰 프로그램에서&nbsp;혹은 그렇지 않더라도<br>mfc가 기본적으로 함수를&nbsp;정의하는 코드를 비교 해봤을때..)<br>&nbsp;물론 엄청난 시력의 눈을 가진 리버서에게는 소용 없는 일인가요 ? :(<br><br>이는 어떻게 보면 CWnd함수중 어떤 기능을(함수)를 쓰는가에 초점을 맞춰진다.물론 정통한 C++프로그래머는<br>분명 바로 눈치를 채게된다. EnableWindow함수를 썻다는 것에 대하여...물론 다른 함수들도 있을수 도 있다<br>하지만 이부분은 분명 리버서의 재량이거나 혹은 경험에 의해서 컨트롤 되어짐을 명심해야한다.</p><p>이 함수주소를 찾아서 breakpoint를 걸게 된다면 우린 우리가 원하는 루틴속에 빨려 들어갈수 있다.<br><br><br>PS.좀더 Row한 흐름속에 명백히 그것을 찾을려면 API를 줄줄 익히고 있으면 된다.<br>혹은 윈도우의 콜체인을 안다면 그것은 더이상 문제거리가 되지 않는다. mfc의 수많은 콜 처리 중에<br>결국 호출되는 함수는 같은것이니깐...하지만 이것은 별로인걸라 생각이 든다.&nbsp;<br>다만 하나의 진실을 보는 방법은 수만가지일 뿐이라고 생각하네요.<br><br><div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds9.egloos.com/pds/200807/20/56/e0034556_4882ec0015e6a.png" width="394" height="191" onclick="Control.Modal.openDialog(this, event, 'http://pds9.egloos.com/pds/200807/20/56/e0034556_4882ec0015e6a.png');" /></div></p>커널레벨로 내려가기위해서 eax에 enableWindow 함수를 호출하기위한 인덱스값이 0x113f로군요<br><div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds9.egloos.com/pds/200807/20/56/e0034556_4882ec3755c42.png" width="396" height="166" onclick="Control.Modal.openDialog(this, event, 'http://pds9.egloos.com/pds/200807/20/56/e0034556_4882ec3755c42.png');" /></div><br>&nbsp;Sysenter를 이용하여 커널과 통신을 하게 됩니다..<br><br>이상 비오는날 잡설이였습니다....~_~(글의내용은 다소 두서가 없지만 c++에 관한 디어셈 코드 복원 시도중이라 할까요 -_-)<br>좀더 다른 방법이나 괜찬은 방법있으시면 저한테 가르침을 주소서~			 ]]> 
		</description>
		<category>Reverse</category>

		<comments>http://hongten.egloos.com/1882971#comments</comments>
		<pubDate>Sun, 20 Jul 2008 07:43:02 GMT</pubDate>
		<dc:creator>홍텐</dc:creator>
	</item>
	<item>
		<title><![CDATA[ [열혈강의c++]8장 상속과 다형성 ]]> </title>
		<link>http://hongten.egloos.com/1639878</link>
		<guid>http://hongten.egloos.com/1639878</guid>
		<description>
			<![CDATA[ 
  <p>음...C++에서 중요한건 클래스의 확장성을 고려해서 만들어야 된다..<br>이럴려면 제목처럼 상속과 다형성에 대해서 알아봐야하는데 ...밑에 그림을 보자.<div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds9.egloos.com/pds/200804/24/56/e0034556_480f579bd5cd4.png" width="500" height="332.03125" onclick="Control.Modal.openDialog(this, event, 'http://pds9.egloos.com/pds/200804/24/56/e0034556_480f579bd5cd4.png');" /></div></p><p>저기서 보면 간단한 클래스를 상속의 개념을 덧붙여 그리고 있다<br>어떠한 문제냐면 간단히 Department라는 클래스가 일용직이든 고용직이든 모든 기능을 <br>수행하는 클래스이고 일용직이나 고용직 클래스는 그것을 상속하고 있다<br>하지만 회사가 커져버려서 판매직이라던지 마케팅 등등 여러 부서가 만들어지고 <br>클래스를 확장을 해야한다 하지만 위처럼 구현된다면 부서가 만들어 질때마다 <br>Department class를 변경해야하는 수고스러움이 있다 그래서<br>가령 일용직이나 고용직의 공통된 분모를 뽑아 Employee라는 클래스를 만들고<br>이 클래스는 두개의 고용직을 상속당하는 형태이고 이 Emplyee클래스는 <br>Department에 상속이 되어진다... <br>그리고 객체를 만듬에 있어서 포인터 값으로(참조...)형태를 만든다 코드는 아래와 같다..<br>#include &lt;iostream&gt;</p><p>using std::cout;<br>using std::endl;</p><p>class Employee<br>{<br>protected:<br>&nbsp;char name[20];<br>public:<br>&nbsp;Employee(char *_name);<br>&nbsp;const char *GetName();</p><p>};<br>Employee::Employee(char *_name)<br>{<br>&nbsp;strcpy(name,_name);<br>}<br>const char *Employee::GetName()<br>{<br>&nbsp;return name;<br>}<br>/* Permanet class 급여관리 */<br>class Permanent:public Employee<br>{<br>private:<br>&nbsp;int salary;<br>public:<br>&nbsp;Permanent(char *_name,int sal);<br>&nbsp;int GetPay();<br>};</p><p>Permanent::Permanent(char *_name,int sal)<br>: Employee(_name)<br>{<br>&nbsp;salary=sal;<br>}<br>int Permanent::GetPay()<br>{<br>&nbsp;return salary;<br>}<br>/* Tmeporary class */<br>class Temporary : public Employee<br>{<br>private:<br>&nbsp;int time;<br>&nbsp;int pay;<br>public:<br>&nbsp;Temporary(char *_name,int _time,int _pay);<br>&nbsp;int GetPay();<br>};<br>Temporary::Temporary(char *_name,int _time,int _pay)<br>: Employee(_name)<br>{<br>&nbsp;time = _time;<br>&nbsp;pay = _pay;<br>}<br>int Temporary::GetPay()<br>{<br>&nbsp;return time*pay;<br>}<br>class Department<br>{<br>private:<br>&nbsp;Employee *empList[10];<br>&nbsp;int index;<br>public:<br>&nbsp;Department():index(0){};<br>&nbsp;void AddEmployee(Employee *emp);<br>&nbsp;void ShowList();<br>};<br>void Department::AddEmployee(Employee *emp)<br>{<br>&nbsp;empList[index++]=emp;<br>}<br>void Department::ShowList()<br>{<br>&nbsp;for(int i=0; i&lt;index ;i++){<br>&nbsp;&nbsp;cout&lt;&lt;"name : "&lt;&lt;empList[i]-&gt;GetName()&lt;&lt;endl;<br>&nbsp;&nbsp;cout&lt;&lt;"sal : "&lt;&lt;empList[i]-&gt;GetPay()&lt;&lt;endl;//error<br>&nbsp;&nbsp;cout&lt;&lt;endl;<br>&nbsp;}<br>}</p><p>int main()<br>{<br>&nbsp;Department department;</p><p>&nbsp;department.AddEmployee(new Permanent("KIM",1000));<br>&nbsp;department.AddEmployee(new Permanent("LEE",1500));<br>&nbsp;department.AddEmployee(new Temporary("HAN",10,200));<br>&nbsp;department.AddEmployee(new Temporary("JANG",12,1000));</p><p>&nbsp;department.ShowList();<br>&nbsp;return 0;<br>}<br>소스코드중 cout&lt;&lt;"sal : "&lt;&lt;empList[i]-&gt;GetPay()&lt;&lt;endl;//error<br>여기 부분은 에러가 된다 이유는 이 empList라는 배열은 employee클래스의 포인터들을 담고있다<br>이 employee클래스의 포인터들은 결과적으로 일용직,고용직의 클래스들을 포함하는 형태(맨위 그림참조)<br>이므로 멤버함수를 쓸수 있지 않을까?라고 하지만...<br>이것은 8장 앞에서 애기 했듯이 상속하는 클래스는 결과적으로 상속된 모든 멤버들을 가져오므로<br>객체크기를 비교했을때 제일 나중에 상속 받는 클래스는 크게 된다.<br>이때의 과정은 간단히 말하면<br>A-&gt;B-&gt;C (화살표는 상속되는 순서)<br>이것은 메모리상으로 A가 가장 작은 녀석이고 B가 그담 C가 젤크다...<br>클래스를 포인터로 했을때 접근을 보자면<br>C의 클래스 포인터는 A,B,C의 멤버함수를 쓸수 있고 B의 클래스 포인터는 A,B의 멤버함수를 쓸수 있으며<br>A의 클래스 포인터는 자신의 멤버함수만을 쓸수 밖에 없어서<br>empList[i]-&gt;GetPay()는 에러가 나게된다..<br>이에 해결책은 다음 시간에...~_~</p>			 ]]> 
		</description>
		<category>c++</category>

		<comments>http://hongten.egloos.com/1639878#comments</comments>
		<pubDate>Wed, 23 Apr 2008 15:48:04 GMT</pubDate>
		<dc:creator>홍텐</dc:creator>
	</item>
	<item>
		<title><![CDATA[ [열혈강의c++]6장 static멤버와 const멤버 ]]> </title>
		<link>http://hongten.egloos.com/1630606</link>
		<guid>http://hongten.egloos.com/1630606</guid>
		<description>
			<![CDATA[ 
  const맴버<br><br>const double&nbsp;PI=3.14;<br>PI=3.1415;//compile error<br><br>const int val;<br>val =20; //compile error<br><br>int n =10;<br>const int *pN=&amp;n;<br>*pN=20; //compile error<br>이경우는 pn포인터가 가리키는 n값이 상수화된것임<br><br>int n1=10;<br>int n2=20;<br>int *const pN=&amp;n1;<br>*pN=20;<br>pn=&amp;n2; //compile error<br>이경우는 pn포인터(주소값)이 상수화된거임..<br><br>그렇담 c++에서는 어떻게 될까?<br><br>가령 <br>class A<br>const int a;<br>public:<br>&nbsp;&nbsp;&nbsp;&nbsp;void test(int _a)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a=_a;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>이경우에서 main에서 객체를 생성했다고 가정하면<br>일단 객체를 생성할때 맴버들에 대한 메모리를 구성해준다..(스택작업)<br>이때 const선언된 녀석은 쓰레기값이 초기화 되므로 컴파일단에 에러가 난다<br><br>이럴때는 void test(int _a):a(_a)<br>이런식으로 해주면 해결 이건 걍 const쓸때 초기화 하고 싶을때 위와같이 <br>쓰면 된다...그리공...함수의 const<br>c++에서는 함수 const할때 중간에 선언한다 이런식으로<br>void test(int _a) cont 이렇게 하면 함수가 상수화 된것이다...<br><br>그런데....두가지 유의사항이 있다<br>첫번째는 저렇게 상수화된 함수에서 멤버 변수를 조작하면<br>컴파일 에러가 나는것과<br><br>void test(int _a) const<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;show();<br>}<br>void show()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"babo"&lt;&lt;endl;<br>}<br>이렇게 하면 에러일까 아닐까?<br>(응 ? 멤버변수도 안건드리는데?)<br>그래도 컴파일 에러이다...왜냐면<br>test함수에서 show를 부를때..컴파일단에서는<br>어떻게 체크하냐면 show라는 함수가 const선언 되었냐 안되었냐를 판단한다..<br>즉 show란 함수 안에서 멤버변수를 조작체크하는게 아니라<br>만약 show란 함수가 const되있다면이라는 식이다...<br>위를 컴파일 단에서 고칠려면<br>void show() const 이렇게 하면 된다는 뜻이다...<br><br>static 일반적으로 사용할땐<br>지역변수를 전역으로 만들때 사용한다...<br>주로 이런식으로 씀<br>class AAA<br>static int a=1;<br>어쩌고 저쩌고<br>int AAA:a=1;&nbsp; //static변수 초기화...<br><br>여기서 클래스내에서 static을 선언했다면 객체 생성시 static변수가 할당되므로<br>이렇게 클래스 외부에서 초기화를 한다는 의미는<br>static특성상 main함수 호출이전에 메모리에 초기화 한다는 의미이다..<br><br>새로운 키워드 explicit,mutable<br>explicit는&nbsp; 명시적 호출만 허용한다는 의미이다<br><br>일반적으로 객체를 생성할때<br>AAA a1=10; //이것은 C스타일이다<br>AAA a1(10); //이것은 C++스타일이다<br>C++스타일은 묵시적으로 C스타일을 내부적으로 호출하게 된다...<br>여기서 맴버 함수에<br>가령 생성자 함수를 <br>explicit AAA를 선언하게 되면 첫번째 C스타일은 에러를 발생하게된다..<br><br>mutable 이건 자주 쓰지말라고 하던데...일단 간략하게<br>const한 함수에서는 멤버변수의 조작을 할수 없다 하지만<br>멤버변수에 mutable을 선언하게 된다면 조작을 할수 있다..<br><br>이렇게 조작하기 보다는 const를 이용하는 함수 따로<br>아닌 함수 따로 분리하는게 더좋단다...-_-;			 ]]> 
		</description>

		<comments>http://hongten.egloos.com/1630606#comments</comments>
		<pubDate>Sun, 20 Apr 2008 15:52:16 GMT</pubDate>
		<dc:creator>홍텐</dc:creator>
	</item>
	<item>
		<title><![CDATA[ [열혈강의C++]5장 복사생성자 ]]> </title>
		<link>http://hongten.egloos.com/1630041</link>
		<guid>http://hongten.egloos.com/1630041</guid>
		<description>
			<![CDATA[ 
  <p>음 한마디로 생성자에 대입연산자를 써서 생성자의 멤버들을 모두 mov하겠다는 의미인데...<br>여기서 문제되는것은 동적할당을 했을경우이다<br><br>밑에 소스를 보면 알겠지만<br>처음 생성자를 호출하면 디폴트 생성자가 호출이 된다 여기서 동적으로 맴버들을 할당해주고<br>틸드 생성자에서 메모리 해제를 하면 되는데...<br>가령 하나의 생성자에 또다른 생성자를 대입해주면<br>이미 두번째(스택 상황상 생성자는 꺼꾸로 소멸) 생성자에서 동적할당된 멤버들이 사라진뒤<br>첫번째 생성자의 멤버들을 없앨려고 하니깐 런타임 에러...<br>이런걸 디폴트 생성자에서 다시금 동적으로 정의 해줘야 한다...<br><br>복사생성자 호출 형태 3가지<br>case1<br>-기존에 생성된 객체로 새로운 객체 초기화<br>case2<br>-함수 호출 시 객체를 값에 전달<br>case3<br>-함수 내에서 객체를 값에 의해 리턴<br>사실 case2와 case3는 거의 같은말<br>밑에 소스는 case1에 해당<br>/*<br>&nbsp;CopyCon4.cpp<br>*/</p><p>#include &lt;iostream&gt;<br>using std::cout;<br>using std::endl;</p><p>class Person<br>{<br>&nbsp;char *name;<br>&nbsp;char *phone;<br>&nbsp;int age;<br>public:<br>&nbsp;Person(char *_name,char *_phone,int _age);<br>&nbsp;Person(const Person &amp;p){<br>&nbsp;&nbsp;name=new char[strlen(p.name)+1];<br>&nbsp;&nbsp;strcpy(name,p.name);<br>&nbsp;&nbsp;phone = new char[strlen(p.phone)+1];<br>&nbsp;&nbsp;strcpy(phone,p.phone);<br>&nbsp;&nbsp;age = p.age;<br>&nbsp;}<br>&nbsp;~Person();<br>&nbsp;void ShowData();<br>};</p><p>Person::Person(char *_name,char *_phone,int _age)<br>{<br>&nbsp;name = new char[strlen(_name)+1];<br>&nbsp;strcpy(name,_name);<br>&nbsp;phone = new char[strlen(_phone)+1];<br>&nbsp;strcpy(phone,_phone);</p><p>&nbsp;age = _age;</p><p>}<br>Person::~Person()<br>{<br>&nbsp;delete []name;<br>&nbsp;delete []phone;<br>}<br>void Person::ShowData()<br>{<br>&nbsp;cout&lt;&lt;"name : "&lt;&lt;name&lt;&lt;endl;<br>&nbsp;cout&lt;&lt;"phone : "&lt;&lt;phone&lt;&lt;endl;<br>&nbsp;cout&lt;&lt;"age : "&lt;&lt;age&lt;&lt;endl;<br>}<br>int main()<br>{<br>&nbsp;Person p1("KIM","013-333-5555",22);<br>&nbsp;Person p2=p1;</p><p>&nbsp;p2.ShowData();<br>&nbsp;&nbsp;return 0;<br>}<br><br></p><div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds8.egloos.com/pds/200804/20/56/e0034556_480b469811b72.png" width="500" height="329.67032967" onclick="Control.Modal.openDialog(this, event, 'http://pds8.egloos.com/pds/200804/20/56/e0034556_480b469811b72.png');" /></div>			 ]]> 
		</description>
		<category>c++</category>

		<comments>http://hongten.egloos.com/1630041#comments</comments>
		<pubDate>Sun, 20 Apr 2008 13:35:03 GMT</pubDate>
		<dc:creator>홍텐</dc:creator>
	</item>
</channel>
</rss>
