지난번 GitHub 연동 프로그램의 2번 째 글입니다!

지난 번 글을 못 보신 분은 다음의 링크를 통해 확인 해 주세요!

http://widevery.tistory.com/16?category=818811


GitHub 연동 프로그램에서 사용할 모듈과 변수 설정을 마쳤으므로

프로그램의 기능을 함수와 클래스들에 대해서!

(소스코드)사진으로 알아 보겠습니다.

귀찮아ㅅㅓ... 사진에 설명을 첨부하였으니 그 점 참고해 주세요!










이렇게 GitHub 연동 프로그램에 대해서 2부에 걸쳐 알아 보았습니다.


다음 글에서는 GitHub 연동 프로그램에 사용되는 설정 파일에 대해서

알아보도록 하겠습니다.


※ [출처] Black Hack Python

[출처] Everything 블로그 본인






여러분 안녕하세요

활짝웃자입니다.

너무 오래간만이어서 죄송하기도하고 필요에 의해서 하.ㄴ.. 해서

다시 오게 되었습니다.


잡담은 여기까지 하도록 할게요!


GitHub 연동 프로그램은 맞는데

GitHub 연동해서 상대 PC의 정보를 파싱해서

GitHub로 보내고

프로그램을 심은 쪽에서는

GitHub만 확인하고 정보를 탈취하는 프로그램입니다.

해당 게시글은 몇 개의 글로 나누어질 예정입니다.

만약 이 글이 문제가 될 경우 바로 삭제 조치 하도록 하겠습니다.


※ 이 게시글은 어디까지나 교육 및 공부를 목적으로 만들어졌으며

악용하시라는 의도로 만들어진 것이 아닙니다.

만약 악용하시더라도 그 책임은 본인에게 있음을 알려 드립니다.





깃허브란?

깃허브는 분산 버전 관리 툴인 깃을 사용하는 프로젝트를 지원하는 웹호스팅 서비스이다. 루비 온 레일스로 작성되었다. GitHub는 영리적인 서비스와 오픈소스를 위한 무상 서비스를 모두 제공한다.

...라고

우리의 'Google'!에 검색 해보니 나오더라구요 :)........

자세히 알고 싶으신 분은 GitHub를 따로 검색해주세요!


Python 에는 GitHub를 사용할 수 있도록 모듈이 존재합니다.

다음과 같습니다. :)


(모듈 설치는 검색 해보면 많이 나와있고, 잘 나와 있으니 찾아보세요 :) !)


위 사진과 같이 github3 모듈을 import 하면 GitHub와 연동할 준비를 하게 됩니다.


이제 GitHub와 어떻게 연동을 하고, 무엇을 하는지 생각해봅시다.

연동을 위해서는 (자신의) GitHub ID와 PW가 필요합니다.

다음으로 Repository가 필요하고 정보를 저장할 Repository가 필요합니다.

정보 저장을 위한 Repository는 기본 베이스 Repository의 하위 디렉터리 형식으로 생성해 줍니다.

(자세한 것은 검색 해보시면 나와 있어요!)


그 외에 또 필요한 것을 생각해 봅시다.

우리가 원하는 기능을 하는 모듈이 Python에 없는 경우가 있습니다.

그런 경우 해당 모듈을 설치를 하거나 만들어야 되는데

모듈을 설치 하는 것도 편하지만 이번에는 만들어서 GitHub에 저장 후,

Target PC에서 GitHub 연동 프로그램을 실행하여

필요한 모듈을 GitHub에서 불러오기도 하고, Target PC의 정보를

GitHub에 업로드 시키는 기능도 필요하다고 생각합니다.

그리고 무작정 GitHub에 업로드 하는 것이 아닌 base64 암호화 기법을 사용해

암호화 된 상태로 보내도록 합니다.


또한 GitHub에 저장 되어 있는 필요한 모듈을 불러올 때는

Python에서 지원 해주는 json 모듈을 활용하여

json 형식의 파일로 불러올 모듈을 지정하고,

json 형식의 설정 파일을 읽어 들여서 해당 설정 파일의 모듈을

GitHub에서 불러들여서 실행하는 형태가 되면 좋다고 생각합니다.


그러기 위해서 필요한 모듈들은 다음과 같습니다.



위 사진의 「from github3 import login」 부분은

github3 모듈의 login 기능만을 사용하겠다는 선언입니다.


이제 모듈들은 준비가 되었으니

프로그램에서 사용할 「변수」를 선언합니다.


다음은 변수들 선언과 사용 용도입니다.








여기까지가 GitHub 연동, Target PC의 정보 수집을 위해

필요한 모듈들과 프로그램에 필요한 변수 선언이었습니다.


다음 글에서는 GitHub 연동 프로그램(기존의 Trojan 수정)의

기능들에 대해서 알아 보겠습니다.



※ [출처] Black Hat Python

※ [출처] Everything 블로그 본인



오랫만에 글을 올리네요.


개인적인 사정으로 바빠서 올리지 못 한 점 양해 부탁드립니다.




이번 글에서는 if ~ else 문과 if ~ else if ~ else 문을 다루도록 하겠습니다.



1. if ~ else 문


if 문하고 if ~ else 문의 차이점은 처음 보자마자 알 수 있듯이 else 가 추가 된 것입니다.


if 문은 조건을 검사 후 조건 성립하면 실행하고, 조건 성립하지 않으면 실행을 하지 않고 다음 문장으로 넘어갑니다.


if ~ else 문 if 부분에서 조건이 성립하지 않을 경우 else 문의 내용을 실행합니다.


반대로 if 부분에서 조건이 성립하면 else 문의 내용을 실행하지 않습니다.


예제를 통해 알아보도록 하겠습니다.



[ if 문의 조건이 성립할 경우 ]



[ if 문의 조건이 성립하지 않을 경우 ]


위의 예제에서처럼 if 문의 조건이 성립하지 않았을 경우 실행할 것을 else 문을 통해서 실행할 수 있습니다.






2. if ~ else if ~ else 문


if ~ else if ~ else 문은 조건검사 효율 문제 때문에 사용한다고 보시면 됩니다.


바로 예제를 통해 알아보도록 하겠습니다.



[ if 문의 비효율성 ]


위의 예제를 사람이 보면 단순히 '조건이 맞는 것만 실행하고 나머지는 실행하지 않는다' 라고 생각을 하기 쉽습니다.


하지만 C언어에서는 4가지의 if 문에 있는 조건문을 전부 검사합니다.


그렇게 되면 필요하지 않은 것들까지 조건을 검사하게 되서 그만큼 효율이 떨어지게 됩니다.


그렇다면 if ~ else if ~ else 문을 예제를 통해 알아보도록 하겠습니다.



[ if 문의 비효율성 해결을 위한 if ~ else if ~ else 문 ]


위 예제에서는 if 문의 비효율성을 해결하기 위해 if if if 대신 if ~ else 문 중간에 else if 를 추가 한 것입니다.


위 예제와 같이 코드를 작성하게 될 경우, if 문의 조건이 성립하지 않고, 두 번째 if 문 대신 들어간 else if (opt == 2) 문장이 참일 경우 해당 문장을 실행하고, 나머지 else if (opt == 3) 부터 else 문 까지는 실행을 하지 않고 바로 24번 째 줄의 printf("결과: %f \n", result); 문으로 넘어가게 됩니다.


이렇듯 if 를 연속적으로 사용하여 조건 검사를 매 회 계속 하는 것보다 else if 를 사용하여 조건이 성립 할 경우 남은 조건 문을 실행하지 않도록 하여 효율성을 높이는 방법이 훨씬 보기에도 편하고, 사용에 익숙해지면 편하게 사용 가능합니다.






3. if ~ else 문과 if ~ else if ~ else 문의 구조


if ~ else 문과 if ~ else if ~ else 문의 구조는 다음 예제를 통해 알아보도록 하겠습니다.



[ if ~ else 문, if ~ else if ~ else 문의 구조 ]


위 예제에서 확인 가능 하듯 if ~ else 문은 if 문의 조건식이 성립하지 않을 경우 else 문을 실행하는 구조입니다.


if ~ else if ~ else 문의 경우


if 문의 조건식이 성립하지 않아도 else if 문 조건 성립 또는 모든 조건이 성립하지 않아 else 문을 실행하는 구조로 되어 있습니다.


또한 if ~ else if ~ else 문에서 else if 부분은 추가로 else if 를 삽입 가능합니다.






이것으로 if ~ else 문, if ~ else if ~ else 문에 대하여 알아 보았습니다.



다음에는 반복문의 생략과 탈출에 사용되는 continue 와 break 에 대하여 글을 올리도록 하겠습니다.









'프로그래밍 언어 > C' 카테고리의 다른 글

C언어 공부 관련!  (0) 2019.08.16
C언어 조건문 - if 문 (1)  (0) 2017.01.26
C 언어 반복문의 중첩  (0) 2017.01.15
C언어 반복문 - for문 (2)  (0) 2017.01.15
C언어 반복문 - for문 (1)  (0) 2017.01.12

+ Recent posts