[Le4rN TO Cr4cK] 
http://learn2crack.com/ 

[codeDiver] 
http://web.kaist.ac.kr/~taekwonv/ 

[동우의홈피] 
http://www.dasomnetwork.com/%7Eleedw/mywiki/moin.cgi/ReverseEngineering#head-cece32e35b00dfb3b9d24ed7b21c364d4747b49e

[oPEN rEVERSE fORUMS]
http://ampm.ddns.co.kr/~reverse/ 

[vivaman]
http://vivaman.bcpark.net/

[#44u61l5fp]
http://dualpage.muz.ro/


PEiD Discussion Forum
http://www.secretashell.com/PEiD/index.php

여기는 중국사이트 군요 ...
http://bbs.cncrk.com

언팩 분야 검색 하다가 알게 됬어요
우리나라에도 요런 사이트가 ... 몇군데 밖에 없지만...
http://www.cracklab.ru

http://www.cheatengine.co.kr/main/
말그대로 cheatengin에 대해서 정보 공유하는 곳 입니다. 자신만에 cheatengin만드는법 게임에서 치트하는 방법등 흥미로운 내용들이 많네요

http://ollylove.cafe24.com/   // ollydbg 관련사이트
http://www.winapi.co.kr/    // API에대해 알수있는곳 --0--

http://doom.scene-gods.de/unpacker.htm
언팩 조금 모아놓은 사이트

Posted by Nvdark
,
예전에 이거 안되서 정말 고생했다.... 다운로드는 되는데 업로드가 안된다니....
나보고 어쩌란 말이냐!! 그래서 고생끝에....ㅠㅠ





# setsebool -P ftpd_disable_trans 1 # /etc/rc.d/init.d/vsftpd restart 해볼것...
이거 페도라에서 자기 디렉토리 막은듯....



사용하려면 자기 계정으로 권한 설정 다시 해서 디렉토리 만들고 해야할듯하다.
Posted by Nvdark
,

Vsftp Setting

Computing/Linux 2009. 1. 20. 14:39
이거 예전에 안되서 어서 긁어왔던건데 기억이 안남....출처불분명;; ㄷㄷ


//////////////////////////////////////////////////////////////////////////////////////////////// 2) 쉘권한이 없는 사용자들이 ftp를 사용가능하게 하려면? 대부분의 ftp서버는 로그인시 쉘을 요구하게 됩니다. 하지만 쉘 권한을 주지 않은 사용자들에게 ftp접근 권한을 주려면 /etc/pam.d/vsftpd파일에서 4번째 줄에 #을 입력하여 주석 처리 합니다. (check_shell=NO 라는 지시자가 있었지만 PAM인증을 받는 곳에서는 작동하지 않았다.) #%PAM-1.0 auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd.ftpusers onerr=succeed auth required pam_stack.so service=system-auth #auth required pam_shells.so account required pam_stack.so service=system-auth session required pam_stack.so service=system-auth //////////////////////////////////////////////////////////////////////////////////////////// 3) 사용자 home 디렉토리를 벗어나지 못하게 하려면? ftp사용자가 자기 home디렉토리를 벗어나지 못하게 하려면 다음과 같이 설정합니다. chroot_list_enable=YES chroot_local_user=YES 위와같이 설정합니다. 접속하면 /etc/vsftpd.chroot_list 파일이 없다고 에러가 나게 됩니다. 단순히 touch /etc/vsftpd.chroot_list 이렇게 파일을 만들어 주면 됩니다. 그리고 특정유저는 제외하려면 /etc/vsftpd.chroot_list 파일에 사용자 계정을 넣어줍니다. ////////////////////////////////////////////////////////////////////////////////////////// 4) "."으로 시작하는 숨김파일을 기본적으로 보이게 하려면? 리눅스에서 "."으로 시작하는 파일은 숨김 파일입니다. 하지만, 다른 os에서는 "."으로 시작해도 숨김파일으로 취급하지 않는 경우가 있습니다. 이런경우 항상 "."으로 시작하는 파일을 보여주려면 다음과 같이 설정합니다. force_dot_files=YES 5) ftp 접속시 파일과 디렉토리의 소유권을 숨기려면? 특수한 목적으로 파일 및 디렉토리의 소유자를 숨길 경우가 있습니다. 이런 경우 다음과 같이 설정하면, ftp라는 사용자로 보이며, 본 ID는 보이지 않습니다. hide_ids=YES 6) 하위디렉토리의 파일 및 디렉토리를 볼수 있는 ls -R 명령 허용하려면? 하위디렉토리 리스트를 보여주기 위해서 ls -R 명령어를 내릴때가 있습니다. 이런경우 대부분의 ftp 서버는 부하등의 이유로 막아 두게 됩니다. vsftpd또한 기본적으로 막아 놓은 상태이며, 허용하기 위해서는 다음 지시자를 입력하세요. ls_recurse_enable=YES 7) openssh에 chroot 패치가 된 것을 사용하는데 정책을 같이 적용하려면? openssh에 패치를 가하면, ssh 또한 자기 home 디렉토리를 벗어나지 못하게 설정가능합니다. 이 정책은 /etc/passwd파일의 홈디렉토리 부분에 /home/사용자/./ 와 같이 "/./"을 붙여 사용자를 홈디렉토리로 제한하게 됩니다. 이 정책에 따라 적용하려면, 다음 옵션을 적용하시기 바랍니다. passwd_chroot_enable=YES 8) 파일을 올렸는데 시간이 이상하게 보인다면? 대부분의 ftp서버에서 시간 표현은 표준시각(GMT)을 보여주게 됩니다. 국내에서만 사용하는 ftp서버는 다음 옵션으로 국내 시간으로 보여줄 수 있습니다. use_localtime=YES 9) 전송속도를 제한하고 싶다면? 다운로드 받는 한 사용자가 네트웍 트래픽을 모두 사용해 버리는 것을 방지하기 위해서 대역폭을 조정해야 하는 경우가 있습니다. 다음 옵션으로 가능합니다. 뒤에 나오는 숫자의 단위는 (Bytes/Sec) 입니다. local_max_rate=300000 위 설정은 300KByte/Sec의 대역폭을 제공합니다. 10) 동시 접속자수를 제한하려면? ftp서버에 접속할 수 있는 최대 접속수를 제한하려면, 아래의 설정으로 제한 가능합니다. max_clients=10 위 설정은 동시에 10개의 연결으로 제한합니다. 11) 한 IP당 접속할 수 있는 동시접속 수 제한하려면? ftp서버의 한 사용자가 대역폭을 모두 사용해 버리는 것을 방지하기 위해, 전송 속도를 제한하면, flashget 등의 유틸리티로 몇개의 접속으로 나눠 받으면 대역폭 제한을 우회 할 수 있습니다. 이런경우 한 IP에서 접속 가능한 동시접속 수를 제한하므로 해결 가능합니다. max_per_ip=2 위 설정은 한 IP에서 접속할 수 있는 연결을 2개로 제한합니다. 12) PASSIVE 모드 사용시 사용하는 포트 범위를 제한하려면? FTP에서 데이터 전송을 위해서 20번 포트를 사용합니다. 이경우 서버에서 클라이언트 쪽으로 연결을 하기 때문에 중간에 방화벽 또는 공유기등을 사용한다면, 정상작동하지 않을 수 있습니다. 이런 문제를 해결하기위해서 PASSIVE모드라는 것이 있고, 이 모드에서는 서버의 1024이후 포트를 사용합니다. 이 포트의 범위를 제한하기 위해서는 다음과 같이 설정합니다. pasv_min_port=40000 pasv_max_port=50000 위 설정은 PASSIVE에서 사용할 포트를 40000~50000로 합니다. 13) mp3, wmv 등의 확장자를 가진 파일의 업로드를 금지하려면? ftp를 통해 인증된 사용자가 파일을 올리는 것을 막는 방법은 거의 없었습니다. 이 vsftpd는 특이하게 특정파일 패턴을 제한하는 기능이 있습니다. deny_file={*.mp3,*.wmv} 위 설정은 mp3, wmv 파일을 전송하지 못하게 하는 방법입니다. 14) 특정파일 패턴을 숨기려면? 특정파일이 서버내에는 존재하지만, ftp접속시 보여지지 않게 설정할 수 있습니다. 다음예를 보시기 바랍니다. hide_file={*.mp3,.hidden,hide*,h?} 위 설정은 mp3파일, .hidden 파일, hide로 시작하는 파일을 보여지지 않게 하는 옵션입니다. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// # anonymous 사용자의 접속 허용 여부 (default = YES) # 공개된 형태의 FTP 서버로 운영할 것이 아니라면 NO로 한다. anonymous_enable=NO # 로컬 계정 사용자의 접속 허용 여부 (default = NO) local_enable=YES # write 명령어 허용 여부 (defualt = NO) write_enable=YES # 로컬 계정 사용자용 umask (default = 077) local_umask=022 # anonymous 사용자가 파일을 업로드 할 수 있는지 여부 (default = NO) # anon_upload_enable=YES # anonymous 사용자의 디렉토리 생성 허용 여부 (default = NO) # anon_mkdir_write_enable=YES # 파일 전송 로그를 남길 것인지 여부 (default = YES) xferlog_enable=YES # xferlog 표준 포맷으로 로그를 남길지 여부 (기본 설정파일은 YES) # 아래에서 NO로 설정했을 때를 설명함 xferlog_std_format=YES # 파일 전송 로그 파일명 xferlog_file=/var/log/vsftpd.log # FTP 서버 접속할 때 로긴 메시지 (default = vsFTPd 버전번호) # 한글 사용 가능 # ftpd_banner=Welcome to blah FTP service. # 사용자의 홈디렉토리를 벗어나지 못하도록 제한하기 위한 설정 (default=NO) # 제한이 필요할 경우 YES로 바꾼 후 제한할 사용자 ID를 chroot_list_file= 에 설정한 파일에 # 지정한다. # chroot_local_user= 설정과 관련이 있으니 '3. 문제 해결'을 꼭 읽어보라. # # chroot_list_enable=YES # chroot_list_file=/etc/vsftpd.chroot_list # ------------------------------------------------------------------- # 기본 설정 파일에는 없는 설정값으로 필요한 설정만 추가한다. # ※ 중요한 설정은 굵은 글씨로 표시 # ------------------------------------------------------------------- # PAM 파일명을 지정 (설치할 때 /etc/pam.d/vsftpd명으로 복사함) pam_service_name=vsftpd # wtmp에 로그 남기기 (YES로 해야만 last 명령어로 접속 여부 확인 가능) session_support=YES # 사용자가 자신의 home directory를 벗어나지 못하도록 설정 chroot_local_user=YES # 새로운 디렉토리에 들어갔을 때 뿌려줄 환경 메시지를 저장한 파일명 # message_file=.message # xferlog 형식으로 log를 남기려면 (위에서 이미 YES로 했음) # xferlog_std_format=NO # #  - xferlog 표준 포맷은 로긴, 디렉토리 생성등의 로그를 남기지 않음 #   그러나 vsftpd 스타일 로그는 이를 포함한 보다 상세한 로그를 남김 #  - vsftpd 스타일 로그 예 # #  Sun Jul 12 01:38:32 2003 [pid 31200] CONNECT: Client "127.0.0.1" #  Sun Jul 12 01:38:34 2003 [pid 31199] [truefeel] FAIL LOGIN: Client "127.0.0.1" #  Sun Jul 12 01:38:38 2003 [pid 31199] [truefeel] OK LOGIN: Client "127.0.0.1" #  Sun Jul 12 01:38:41 2003 [pid 31201] [truefeel] OK MKDIR: Client "127.0.0.1", "/mp3" #  Sun Jul 12 01:39:06 2003 [pid 31201] [truefeel] OK UPLOAD: Client "127.0.0.1", "/델리 #  스파이스 5집 - [04]키치죠지의 검은 고양이.mp3", 6855473 bytes, 3857.39Kbyte/sec # 전송속도 제한 (0은 제한없음, 단위는 초당 bytes) anon_max_rate=0 local_max_rate=0 trans_chunk_size=0 # 최대 접속 설정 (단 xinetd를 통하지 않고 standalone으로 동작할 때만 사용 가능) # standalone을 위해서는 listen=YES 추가하고 별도로 vsftpd를 띄워야 함 # # max_clients=최대 접속자 수, max_per_ip=IP당 접속 수 # max_clients=100 # max_per_ip=3 # Standalone 으로 운영할 때 listen=YES. 포트 변경을 원할 경우 listen_port 설정 # 디폴트 포트는 21번 포트이다. # listen=YES # listen_port=21





Posted by Nvdark
,
#include <stdio.h>
#include <conio.h>
void main()
{
	//변수선언
	int num[6];
	int *add=num;
	int r,i,l;
	//5개의 숫자 입력
	for(r=0;r<=4;r++)
	{
		printf("\n5개의 숫자를 입력하세요=");
		scanf("%d",&num[r]);		
	}
	//배열의 주소값과 갑들출력
	for(i=0;i<=4;i++)
		printf("address=%u,num[%d]=%d\n",&num[i],i,num[i]);
	//가장높은수를 알아내기위한 비교
	int temp=*add;
	for(l=0;l<5;l++)
	{
		add++;
		for(int a=0;a<5;a++)
		{
			if(temp<=*add)
			{
				temp=*add;		
			}
		}
	}
	//높은수 출력
	printf("max=%d\n",temp);
}


	
	
Posted by Nvdark
,
#include <iostream.h>  // 구버전의 C++일경우 iostream.h 


void PrintBit(int n)
{
  
    for(int i=1<<16; i>0; i>>=1){   // 최상위비트부터 1비트씩 이동 
        if(n&i)
            cout << "1";            // 만일 비트가 1이면 1출력 
        else
            cout << "0";            // 만일 비트가 0이면 0출력 
    }
    cout << endl;
}

int main()
{
    int n;
    
    cout << "숫자를 입력하세요: ";
    cin >> n;
    PrintBit(n);
    return 0;
}

Posted by Nvdark
,
예전에 락현이형이 짰던거.....

#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
#include <conio.h>

#define LEFT 75
#define RIGHT 77
#define UP 72
#define DOWN 80
#define ESC 27


int x,y;


// 콘솔화면화면(도스화면) 상의 x,y위치로 커서를 이동시킨다.(콘솔화면 가로 0-79, 세로 0-25)
void gotoxy(int x, int y)
{
COORD Cur;
Cur.X=x;
Cur.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),Cur);
}

void prx()
{
gotoxy(x,y);
putchar('*');
}

void main()
{
char usrinput;

x = 30,y=10;

while( usrinput != ESC )
{
prx();

/////////////////////////////////// 키보드로 부터 입력된 값이 특수문자(방향키)임을 먼저 확인하고 만약 방향키라면 어떤 방향인지
usrinput = getch(); //   조사한다.
if( usrinput == 0xE0 ) //
usrinput = getch(); //
///////////////////////////////////

switch(usrinput) {
case UP :
y--;
break;
case DOWN:
y++;
break;
case RIGHT:
x++;
break;
case LEFT:
x--;
break;
default :
break;

}
}

system("cls");
gotoxy(30,10);
printf("프로그램을 종료합니다.");
}
 
Posted by Nvdark
,




카오스 유져를 위한...

Posted by Nvdark
,

TSS? 이건 뭥미?

Computing/OS 2009. 1. 20. 13:02

시험공부하면서 공부하게되었다 ㅠㅠ

처음엔 어려웠는데 하다보니 참 재미있는;;;


기본적으로 "정덕영"씨의 책을 보면 다 이해가 갔는데

이해가 잘 안가는부분이 TSS 쪽이였다.

특히 IDTR(인터럽트)쪽!! TR은 28H를 가르친다고 고정이라고 나와있고 ...Task Gate Descriptor를

가르친다고 나와있는데 그럼 결국 TR은 하나의 Task만을 가르친다는 소리같았다. 그럼 IDT에서 나온 셀렉터는 모란말인가 ㅠㅠ


내가 이해한게 맞는지는 모르겠지만....

난 이렇게 이해했다. ;;

Gate 디스크립터란건 TSS변환을 할때 사용한다고 나와있고 그냥 TSS 디스크립터는 TSS를 가르친다고나와있다. 내부적인 내용까지는 (포함하는 값)은 나중에 정리하기로하고 ...


인터럽트가 발생하면 IDT에 있는 255개의 여러 값중에 맞는 하나를 가지고 Task 셀렉터가 생기는데 이것은 GDT영역의 TSS 디스크립터를 가르친다.  그리고나서 TR이 호출...음...


인터럽트가 발생하면 어떤인터럽트든 상관없이 현재 작업중인 테스크는 스택에 저장되고 작업이 전환되면 TR을 호출하여 테스크를 전환한다....모 나름 혼자 열심히 생각해서 결론은 이리났는데 ...

단순히 세그멘테이션과 페이징이 되는과정은 금방 이해가갔지만 도무지 인터럽트쪽에서 막혔던 난 이런결론을 내야했다 ㅠㅠ 왜!! 시험이 불과 몇시간도 안남았기때문에 ㅠㅠ

Posted by Nvdark
,

WDF

Computing/Windows 2009. 1. 20. 12:58

WDF를 설명하기에 앞서서 WDM부터 알고넘어가야한다.

WDM을 기반으로 하여 WDF가 구현되는거라고 생각하기에 ㄷㄷㄷ


그럼 차차 설명하기로 하고 ....

http://www.microsoft.com/whdc/driver/wdf/wdf-arch.mspx 여기있는 문서를 참고하였습니다.


WDF는 MS의 차세대 Driver-Development Model입니다.

전 WDM과는 별도의 것이라고 생각했었는데 ...그게 아니더군요..WDM의 단점을 극복하기위해 나온 프레임워크라고 해야할것입니다.

번역하면서 느낀건데 몬소린지 모르겠더군요 ....

일단 문서를 보시면 소개부터 좔좔.....모라고 쓰여있는데....나중에 시간나면 올리도록하고

제가 생각하기에 중요하다고 생각되는부분만 다루겠습니다.

사용자 삽입 이미지

WDM은 심각한 제한을 가지고있는데 WDM드라이버는 수천라인의 코드를 가지고있습니다. 이것은 드라이버가 지원해야하는 공통의 특징을 구현하는데 WDM 드라이버는 그 OS커널에서 직접적으로 나오는 디바이스 드라이버 인터페이스(DDIs)를 사용합니다. 그러나 이 DDIs는 오류가 존재하며 이 오류로 인하여 시스템이 망가질수있기때문에 WDF가 나오게 되었습니다.


KMDF-커널 모드 드라이버 프래임워크를 나타내는 말이며

UMDF-유져 모드 드라이버 프래임워크를 나타내는 말입니다.

일단 오브젝트모델이라는것이있는데 이부분은 아직 이해가 안되서 나중에하고


I/O 모델이있습니다. 여기서는 I/ORequest Flow가 나오는데 말그대로 받아들이시면됩니다.


1. IRP dispatcher은 IRP를 점검하고 그것을 I/O package로 보냅니다.

2. I/O package는 WDF request 오브젝트를 만들고 IRP를 나타냅니다. WDF request object를 대기열에 추가하고 현재의 전원상태를 검사합니다.

3. 장치는 low-power에서  있기때문에 I/O package는  read operation을 수행할수있도록 Plug and play/power package를 호출합니다.

4. Plug and Play/power manager package는 defulat 조치를 취하고 driver에 의해 구현된 적절한 전원 관리 callbacks를 부름으로써 작업상태에 대한 장치를 return시켜 줍니다.

5. 그 장치가 성공적으로 작업상태에  들어왔을때, 프래임워크은 그 드라이버에 read 요구를 신속히 처리합니다.

6. 드라이버가 일을 신속히 처리했다면 , 드라이버는 요구를 얻기위해 대기열의 매소드를 호출합니다.

7. 드라이버가 요구를 만족시킬 수도 있다면, 이대로 동작할수있고 할 수 없다면, I/O 타겟에 대한 요구를 보냅니다.

 

으아 피곤하네요 ㅠㅠ

많은 양은 아니지만 시간날때 KMDF,UMDF의 프래임워크에대해 설명하도록하겠습니다. ㅠㅠ

Posted by Nvdark
,

어셈으로 계산기를 만들었던소스.

MASM으로 만들었습니다.

소스수정 전혀 안되있습니다. ㅋㅋㅋㅋ

보기가 살짝 불편하고 불필요한코드가 약간(?) 있습니다. ;; 귀찮아서 ㅡ_ㅡ;



이거 하면서 ATOI,ITOA 를 어떻게 하면좋을까하다가 전 보시는 봐와같이했구요;;

모 다른분들도 이렇게 하셨을꺼라 생각합니다. 이거짜면서 혼자 머리쥐어짜고있었어요 ;;


그리고 레지스터 크기상 일정크기이상은 계산이 안되더군요;;

예를들면 전 EAX를 쓴게 아니고 AX만을 사용하여서...계산범위의 한계가있습니다.

물론 저의 독단적인 생각이니 ...틀렸다고 모라하지마시길;;

Posted by Nvdark
,