본문 바로가기

전체 글143

c언어 - 유클리드 알고리즘 유클리드 알고리즘이란? - 두 양의 정수들에 대한 최대 공약수를 찾아내기 위한 알고리듬 등식 : gcd(a,b) = gcd(b,a mod b) ex) gcd(44, 12)=gcd(12, 8) = gcd(8,4) = gcd(4,0) = 4 44와 12의 최대 공약수 -> 4 c언어 소스 #include #include int Euclid(int num1, int num2); int main() { int num1, num2, gcd; printf("두 정수를 입력하세요 : "); scanf("%d %d", &num1, &num2); if(num1 > num2) gcd = Euclid(abs(num1), abs(num2)); //절댓값으로 넣음 else gcd = Euclid(abs(num2), abs(nu.. 2012. 5. 26.
FSB(Format String Bug)로 GOT Overwrite 해보기 이번에는 FSB(Format String Bug)로 .dtors가 아닌 GOT영역을 덮어서 공격해보도록 하겠습니다. PLT(Procedure Linkage Table), GOT(Global Offset Table) 포맷 스트링 버그 - FSB (Format String Bug) 기본 연습하기 GOT나 포맷 스트링 버그에 대해서 잘 모른다면 먼저 위의 글을 읽어 보면 좋을 것 같습니다 ~ 그럼 GOT와 포맷 스트링 버그에 대해서 안다고 생각 하고 GOT Overwrite를 해보겠습니다. 실습 환경은 RedHat 8.0 입니다. 위의 공격 프로그램 attackme는 setuid가 걸려 있으며 printf(buf)에 의해 포맷스트링 버그가 존재합니다. 공격 방식은 printf(buf)를 이용해 printf의 .. 2012. 5. 22.
.tar.gz로 된 소스 컴파일 하기 소스 컴파일 하기 .tar.gz로 묶여 있으면 ( tar -zxvf 파일 명 ) 으로 압축을 풀어 줍니다. (.gz가 없으면 옵션에서 z를 빼줍니다.) 그리고 해당 디렉토리에 들가면 configure 파일이 있을 텐데 그것을 실행시켜줍니다. 1. ./configure (환경 설정) 그리고 해당 Makefile을 이용하므로 그 디렉토리안에서 make all과 make install을 해주면 됩니다. 2. make all (컴파일) 3. make install ( 프로그램을 실행할 수 있도록 알맞은 위치로 복사하는 과정 ) 한번에 ./configure && make all && make install 로 해주면 됩니다 ~ --- make뒤의 all이나 install은 Makefile의 target 이름 입니.. 2012. 5. 16.
Linux(fedora, redhat 등) iso파일 download site ~ ftp://ftp.superuser.co.kr/ 속도도 빠르고 자료도 많네요 ~!! 2012. 5. 16.