본문 바로가기

Study/Python

Python Hacking Programming(Gray Hat Python) Chapter1

도서관에서 장기대출(?)중인 책으로 연체가 되었지만;

제가 신청해서 가져온 책으로 나중엔 구입해서 보관할까 생각중입니다ㅎㅎ

공부한지 석달정도 되었는데 벌써 가물가물하네요 ㅋㅋ

해킹캠프를 다녀온후 공부한것은 물론 예전에 작성한 코드같은것도 닥치는대로 올릴려고합니다.

투데이도 나날이 올라서 행복하네요


에에 그럼 포스팅 시작합니다

제목대로 챕터1의 내용인

1.3.1 cypes

1.3.2 동적 라이브러리 이용

1.3.3 C 데이터 타입

1.3.4 레퍼런스를 통한 파라미터 전달

1.3.5 구조체와 유니언 정의


(09.22)지금보니 2장의 앞부분도 약간 포함되어있네요 :-)


이것들과 다음게시물로 webhacking.kr python 풀이를 올리도록 하겠습니다.

최근에 우연히 검색하다 보게된 md5 해쉬충돌 소스도 올릴예정입니다.


개발환경은 Eclipse의 Pydev기능을 이용했습니다.

자세한 설치방법은 검색하시거나 책에 나온내용을 그대로 따라하시면됩니다.

책이 약간 오래되서 바뀐 부분이 하나있는데요

책중간에 이클립스의 소프트웨어 업그레이드 기능을 설명하는 부분에 있는 url이

http://pydev.sourceforge.net/updates/가 아닌

http://pydev.org/updates/ 이곳에서 설치하셔야 됩니다.




아래는 공부하면서 책을 참고하여 직접 메모한 내용입니다.


-Cypes 라이브러리를 이용한 helloworld(Windows)-

from ctypes import *

msvcrt = cdll.msvcrt
message_string = "Hello world!\n"
msvcrt.printf("Testing: %s", message_string)



-libc.so.6 라이브러리를 이용한 helloworld(Linux)-
from cypes import *

libc = CDLL("libc.so.6")
message_string = "Hello world!\n"
libc.printf("Testing: %s", message_string)


-Union 예제-

'''
Created on 2012. 6. 2.

@author: Administrator
'''
from ctypes import *

class barley_amount(Union):
    _fields_ = [
    ("barley_long", c_long),
    ("barley_int", c_int),
    ("barley_char", c_char * 8),
    ]
value = raw_input("Enter the amount of barley to put into the beer vat:")
my_barley = barley_amount(int(value))
print "Barley amount as a long: %ld" % my_barley.barley_long
print "Barley amount as a int: %d" % my_barley.barley_int
print "Barley amount as a char: %s" % my_barley.barley_char

'Study > Python' 카테고리의 다른 글

Google Text to Speech Bypass  (0) 2016.03.02
md5 hash collision  (0) 2012.09.10
webhacking.kr Python 풀이  (0) 2012.09.09