본문 바로가기

파이썬 스터디 과제43

3장-1 디버기 디버기프로세스를 디버깅하려면 어떤 식으로든 먼저 해당 프로세스에 연결해야 한다.디버깅할 프로세스를 실행시키거나 이미 실행중인 프로세스에 붙여야 한다.윈도우는 이 두 가지 작업을 쉽게 수행할 수 있게 하는 디버깅 API를 제공한다. 프로세스를 실행하는 것 // 프로세스에 붙히는 것프로세스를 실행시키는 경우는 해당 프로세스의 코드가 실행되기 전에 제어를 할 수 있다는 장점이 있다. 악성코드를 분석할 때 좋겠다.프로세스에 붙히는 것은 단지 이미 실행 중인 프로세스에 연결하는 것이다. 관심이 있는 특정 영역의 코드만을 분석할 수 있다.디버깅하려는 대상 프로세스가 어떤 것인지, 분석하려는 목적이 무엇인지에 따라 두 가지 방법 중 하나를 선택하면 된다. 프로세스를 실행시켜 디버깅하기디버거가 실행 바이너리를 직접 실.. 2015. 1. 14.
2장-디버거 디버거디버거는 해커에게 매우 중요함디버거는 실행 중인 프로세스를 트레이스하거나 동적 분석을 한다.동적 분석은 악성 코드 조사나 퍼저 적용에 있어 필수적인 요소다.디버거는 프로세스를 실행시키거나 일시 정지시킬 수 있으며, 브레이크 포인트를 설정하거나 레지스터와 메모리 값을 수정할 수 있다.디버거는 두 가지 종류로 나뉜다.화이트박스 디버거 : 대부분의 개발 플랫폼이나 IDE는 개발자가 자신이 작성한 소스코드를 트레이스 할 수 있게 디버거를 자체적으로 내장하고 있는데 이를 화이트 박스 디버거라 부른다.개발 과정에서 유용하게 사용된다고 한다.블랙박스 디버거 : 소스코드가 없는 환경에서 사용되는 디버거를 블랙박스 디버거라 부른다.어셈블리 코드만을 알 수 있을때에 사용되는 디버거란다. 숙련된 리버스 엔지니어링 고수.. 2015. 1. 12.
1장 ctypesctypes은 파이썬 개발자가 이용할 수 있는 가장 강력한 라이브러리 중 하나다.ctypes 라이브러리 에서는 세 가지 방법으로 동적 라이브러리를 로드할 수 있다.cdll() - cdecl 호출 규약을 이요하는 함수를 익스포트 하는 라이브러리를 로드하는데 사용 windll() - 마이크로소프트 win32 API가 사용하는 stdcall 호출 규약을 이요하는 함수를 익스포트하는 라이브러리를 로드하는 데 사용 oledll() - windll() 방법과 동일하게 동작하지만 익스포트 함수가 반환하는 값이 HRESULT라 가정한다. 이 세 가지의 방법의 차이점은 익스포트 함수를 호출하는 방법과 리턴 값을 반환하는 방법에 있다.익스포트함수가 뭔지 모르겠다... 알게되면 수정을 해야겠다.HRESULT =>.. 2015. 1. 12.
점투파-4_2(파이썬 날개달기) 모듈모듈은 다른 파이썬 프로그램에서 불러올 수 있는 파이썬 파일을 말한다. 모듈 만들고 블러보기#mod1.pydef sum(a,b)return a+b >>>import mod1>>>print mod1.sum(3,5)8 첫번째는 모듈을 만든것이고 두번째는 만든 모듈을 불러낸 것이다. if__name__ == "__main__" : 의 의미mod1.py 처럼 직접 실행 시켰을 때는 위의 식이 참이되지만다른 파일에서 mod1.py를 실행하면 위의 식이 거짓이 되어 if문 아래의 문장들이수행이 되지 않는다. 책에 예제가 많다. 꼭 봐야 이해가 갈것이다. 다른곳에있는 모듈 불러오기일단 sys모듈을 불러온다>>>import sys sys.path.append("위치")를 실행 후sys.paht를 실행하면 다른곳에 .. 2015. 1. 11.
점투파-4(파이썬 날개달기) ㅋ파이썬의 꽃이라는 클래스에대해 알아보고 모듈, 예외처리 및 파이썬 라이브러리에 대해 알아 보자!! 클래스는 함수나 변수들을 모아놓은 집합이다.클래스의 가장 간단한 예class simple:pass아무 기능도 없는 클래스다. 외관만 클래스다. 하지만 이 클래스도 인스턴스라는 것을 만들 수 있다는데... 인스턴스가 뭘까?=>인스턴스는 클래스에 의해 만들어진 객체로 한개의 클래스는 무수히 많은 인스턴스를 만들어 낼 수가 있다고 한다.인스턴스를 만드는 방법a=simple()바로 simple()의 값을 돌려 받은 a가 인스턴스 이다. 함수를 사용해 그 결과 값을 돌려 받는 모습과 비슷하다. 클래스 변수>>>class service:. . . secret = "나는 손가락이 열 한개다."위 클래스 이름은 serv.. 2015. 1. 11.
점투파-3(입출력) 함수, 입력과 출력에 대해 알아보자! 함수를 왜쓰냐?함수는 여러 번 반복되는 사용되는 것을 묶어놓아서 다음번에 쓸때 이 뭉치를 가져다 쓰면 편하니까 쓴다.함수를 잘만든다면 프로그램도 쉽게 짜지 않을까? 함수의 구조def 함수명(입력 인수):...def는 함수를 만들 때 사용된다. 함수명은 내가 만드는것이다. 책에 예제가 많다. 차마 다 옮길 수 없었다... 책을 참고하면 아주 좋다. 입력과 출력입출력은 프로그램에서 중요하다! 사용자 입력>>>a=input()'hi'>>>ahi>>>a=input()3>>>a3여기서 주의할점은 문자열을 쓸때는 인용문자로 감싸줘야 한다는점! 근데 누가 입력할때 저걸 다 치고 입력하나? 그래서 좋은 방법이 있다! 바로 raw_input()!!!>>>a=raw_input()hi>.. 2015. 1. 11.
728x90