2016. 4. 29. 03:27

## Visual Studio Static Library
    (정적라이브러리) 컴파일 옵션



[그림 1] "dll을 찾을 수 없습니다."


 평소 Visual Studio를 사용하여 프로그래밍을 해서 다른 사람한테 프로그램을 넘겨줄 때

상대방은 Visual Studio가 안깔려있는 경우가 많다.

그러면 상대방이 내가 준 프로그램을 실행시키려 할 때 [그림 1]과 같이 dll을 찾을 수 없다고 하며 실행을 할 수 없는데



그 이유는 visual studio가 default로 동적 라이브러리 방식으로 컴파일을 하기 때문이다.



 따라서 이런 상황이 발생할 경우 컴파일 옵션을 정적 라이브러리 방식으로 바꿔 줘야하는데 Debug모드일 때와

Release모드일 때 설정법이 약간 다르다. 



[그림 2] Compile 옵션 설정 화면



[그림 2]와 같이 Project우클릭 - [Properties] - [Configuration Properties] - [C/C++] - [Code Generation]에 들어가서


    1. Debug 모드 컴파일 시
        - [Runtime Library]항목을 Multi-threaded Debug (/Mtd)로 변경하면 된다.

    2. Release 모드 컴파일 시
        - [Runtime Library]항목을 Multi-threaded (/Mt)로 변경하면 된다.


그러면 dll이 포함되기 때문에 친구가 잘 실행시킬 수 있다.






Posted by holinder4S
2016. 4. 3. 04:18

## 블로그에 소스코드 올리기




블로그에 소스코드를 올릴때가 가끔 있는데 그냥 써서 올리면 가독성도 떨어지고 보기도 이상하다..


이럴 때 http://colorscripter.com/ 라는 사이트를 이용하면 편리한데 위 그림처럼 맞는 언어 선택하고


오른쪽 아래 클립보드 복사를 누른 후 블로그에 ctrl+v만 하면 보기 좋게 소스코드가 블로그에 잘 올라간다.





Posted by holinder4S
2016. 4. 3. 04:02

## Python 으로 프로그램 실행시키기


1
2
3
4
5
6
7
8
9
10
import os
 
TARGET = os.getcwd() + "/a.out"
 
argv0 = "AAAA"
argv1 = "BBBB"
argv2 = "CCCC"
 
os.execv(TARGET, (argv0,argv1,argv2))
 
cs


위 소스코드와 같이 python의 os 모듈을 이용하여 리눅스에서 프로그램의 인자 값을 지정하여 실행할 수 있다.


이 때 특이한 점은 보통 argv[0]에는 프로그램 실행 경로가 들어가지만 위와 같은 경우 원하는 대로


argv[0] 조작을 할 수 있다.


Posted by holinder4S
2016. 3. 3. 23:33

## Linux Program에 python으로 값 넣기


1. (python -c 'print "name\n1\n" + "A"*44';cat) | echo1


2. gdb에서 python으로 프로그램에 값 넣기

  -> r < <(python -c 'print "name\n1\n" + "A"*44')


3. 인자 값 넣기

  -> ./program `python -c 'print "A"*44'` `python -c 'print "B"*44'`





Posted by holinder4S
2015. 12. 30. 00:55

## 리눅스에서 프로그램 인자를 python으로 넣기


 리눅스에 다음 [그림 1]과 같이 문자열을 입력받는 간단한 프로그램이 있다. 
이 경우 프로그램의 취약점(bof)을 발견하기 위해 문자를 많이 집어넣어야 할 때가 있는데 손으로 일일이 집어넣기에는 너무 양이 많다. 



[그림 1] a


이 때 python을 이용하여 인자의 길이를 길게 집어넣을 수 있다. 하는 방법은 다음과 같다.

root@kali:~# (python -c 'print "A"*4 + "B"*4') | ./a

그럼 [그림 2]와 같은 결과가 나타난다.






Posted by holinder4S
2015. 12. 30. 00:34

## FTZ 구축 후 Putty 접속 시 한글 깨짐 현상


 FTZ 로컬 서버를 구축한 후 본격적으로 문제를 풀려고 hint파일을 보면 다음 [그림 1]과 같이 깨져서 문제를 풀기가 힘들다.


[그림 1] putty 접속 시 한글 깨짐


이를 해결하는 방법은 다음과 같다.

  1. Putty실행 화면에서 [그림 2]의 Translation 항목 클릭


[그림 2] Putty 실행 화면


 2. 기본적으로 UTF-8로 세팅되어 있는데 이를 "Use font encoding"으로 바꾼다.


[그림 3] character set 설정


 3. [Appearance] 옵션 항목 클릭 후 [그림 4]와 같이 스크립트를 한글로 font 세팅을 한다.


[그림 4] font setting


이제 세팅이 완료되었고 [그림 5]와 같이 hint파일을 볼 수 있다.



Posted by holinder4S
2015. 11. 8. 20:24

## IDA로 ELF Binary 원격 디버깅하기(IDA Linux 원격 디버깅)


 일반적으로 Linux에서 동작하는 elf 바이너리는 정적 분석, 동적 분석을 할 수 있는데, 정적 분석은 보통 IDA를 이용하여 하게 된다. 그런데 가끔 분석하다 보면 동적 분석이 필요한 경우가 생기게 된다. 이럴때 동적 분석을 할 수 있는 방법에는 여러가지가 있는데 우선 가장 기본적으로 gdb를 이용하여 동적 분석을 할 수 있다. 하지만 dbg를 이용하여 하게 될 경우 익숙하지 않은 경우 좀 힘들 수 있는데, 이 때 사용할 수 있는 도구가 edb 또는 IDA의 원격 디버깅 기능을 이용하는 것이다. edb는 ollydbg를 모티브삼아 만든거라 뭐 편할 수도 있는데 여기서는 IDA의 원격 디버깅 기능을 정리할 것이다.([그림 1]을 보면edb는 한번도 안써봤지만 왠지 편할 거 같다.)

[그림 1] edb-debugger 실행 화면


 이제 본격적으로 IDA로 elf파일을 원격으로 디버깅 해보도록 하겠다.


  1. VMware(Linux System)에 대상 프로그램과 ida 파일들 중에 linux_server(elf파일)을 옮긴다.

[그림 2] Linux System

  

  2. ./linux_server를 실행한다.

[그림 3] linux_server 실행

    [그림 2]와 같이 linux_server를 실행하면 23946포트로 접속을 리스닝하게 된다. 그럼 이제 IDA에서 접속하면 된다.


  3. IDA를 켜고 [Debugger] - [Run] - [Remote Linux Debugger]를 선택한다.

[그림 4] Remote Linux debugger 선택

  

  4. 그럼 [그림 5]와 같은 화면이 나타나는데 [Application] 항목에는 디버깅 하고자 하는 파일의 절대경로명을 써주면 되고,
     [Directory]에는 그 파일의 디렉터리의 절대경로명 [Parameters]에는 프로그램의 인자 값(없으면 안쓰면 됨), [Hostname]
     에는
대상 Linux System의 IP주소, [Password]는 빈칸으로 두면 된다.

[그림 5] 설정 화면

 

  5. 그럼 이제 뜨는 창은 전부 OK하면 [그림 6]과 같이 디버깅이 가능하다.

[그림 6] IDA 원격 디버깅 실행 화면


  6. 끝!

Posted by holinder4S
2015. 11. 8. 20:23

## kali linux에서 ssh & sftp 서버로 사용하는 방법(보안조치x)


일반적으로 리눅스 시스템에는 ssh 데몬이 설치되어 있다. sshd에는 sftp데몬도 포함되어 있는데 이를 이용하여 리눅스 시스템에서 sftp서버를 운영할 수 있다.


1. 현재 구동되고 있는지 확인


D:\이우진\Study Project\Exploit Study(비동기화)\블로그용\이미지\pic1.PNG


2. sftp기능이 sshd의 서브시스템으로 설정되어있는지 확인


D:\이우진\Study Project\Exploit Study(비동기화)\블로그용\이미지\pic2.PNG


제대로 설정되어있지 않으면 vi에디터로 추가


3. ssh데몬 구동

 

D:\이우진\Study Project\Exploit Study(비동기화)\블로그용\이미지\pic3.PNG


4. 윈도우에서 winSCP설치 후 접속


D:\이우진\Study Project\Exploit Study(비동기화)\블로그용\이미지\pic4.PNG



Posted by holinder4S
2015. 11. 7. 20:48

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

2015. 11. 7. 20:47

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.