«   2019/10   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
Tags
more
Archives
Today
0
Total
773
관리 메뉴

공부를 합니다.

[공부] 인투르 2 본문

공부

[공부] 인투르 2

sher1ock sher1ock. 2016.10.29 05:18

먼가 개념적인것들을 차근차근 적으려고 했지만 정리 하다가 지쳐서 그냥 의식의 흐름대로 포스팅 하려구요 ;ㅅ;

머릿속이 정리가 안된다능...


오늘은 보안시작할때쯤, 엄청난 뉴비레벨이었을때 동아리사람들이 뭐라뭐라 하는데 그게 무엇인지

구글에도 나오지 않고, 직접 물어보면서 습득한 것들을 정리해볼까 합니다.


진짜 기본적인것부터.... 낄낄


우선 플래그.  뭐 플래그가 깃발인데 자꾸 플래그가 떳녜말았녜 플래그를 찾았니말았니

다들 알다시피 이것은 추상적으로도 대충 감으로 '답' 을 의미한다는것을 알 수 있죠.



그리고 터미널 창에서의 'Ctrl + L'  이것은 'clear' 와 같이 스크린 청소기능 단축키!

맨날 clear 를 치다가 컨트롤 엘 을 하면 먼가 더 프로패셔널 해보인다능...



이제 좀 깊이 들어가서


offset 일명 오프셋!

시스템문제나 다른문제들을 풀때도 사람들이 항상 하는말, 오프셋을 정확히 계산해야한다 는둥 오프셋을 모르겠다 등등 

요놈이 플래그를 얻는데 쫌 중요해보임!


오프셋이란 거리, 즉 여기서부터 내가 가려는데까지의 거리! 그래서 오프셋 계산후 그만큼 데이터를 때려박아서 원하는곳으로 쩜프! 하는거쥬


/*

또 뭐가있드라.... 분명 헛질한것이 많은데 이제 그것이 습득이 되서 습관이되서 기억이 안납니당..... 하면서 나중엔 메모해놓고 추가할부분! 

*/



그리고 이 포스팅의 진짜 목적


파이썬 Python


"파이썬은 혁명이다" 라고 말하고 다니는 요즘, 구글이나 여러 블로그에 많이 자세히 나와있지만


나오지 않은부분이나(혹은 내가 못찾았거나) , 찾기 어려웠던 부분을 샤샤샥 적을려구요.


저번에도 말했듯히 제가 구글링을 잘 못합니다... 그래도 요새 나름 구글링의 실력이 그나마 볼만해짐 (으쓱으쓱)


포너블을 좀 풀었거나 관심이 있었으면 파이썬이 익숙할 겁니당. 파이썬 저도 모르고있다가 시스템뉴비가 되면서

얘랑 친해져야 겠다는 생각이 쑥쑥..!!


미뤄왔던 파이썬 공부를 요새 해서 왜 이공부를 이제서야 할까 후회중입니다...ㅠㅠ


주로 '점프  투 파이썬' <- 여기에서 많이 했어여! ( 참고 링크 : https://wikidocs.net/book/1 )


// 여기에나 인터넷에 주로 나와있는 부분은 깔끔히 생략! 



1. 파이썬 vs 파이썬


파이썬이랑 파이썬이라니 무슨말인가 하믄

vi 에디터로 vi test.py 해서 파이썬 코드를 작성할 수 있지만 터미널 창에 python 을 쳐도 실행이 가능합니다!

인터프리터 언어로써 한줄씩 읽어들여서  한줄씩 실행을 바로바로 하고 결과도 바로바로 볼 수 있습니다.


2. 공부하면서 사용을 해보았지만 도대체 이것들을 어디가 어떻게 쓰지..??


이부분이 가장 많았어요. 예를들어서 내장함수 ord() 로 예를 들어봅시다.


제가 처음에 이해한 부분이

ord( i ) : i 문자를 아스키 코드값을 리턴하는 함수 라고 이해했슴당.


맞죠. 맞는데 이것을 어떻게 쓰는지 몰랐어요.


그러다가 문자열을 암호화 하는대 사용할 수 있다는 것을 얼마전에 알았습니다.


ex_code)

...

s = open().read()


for i in s :

    out += chr( ord(i) ^ key) #XOR 연산

print out 


>>> 파일을 열고 그 파일의 문자열 하나하나를 key와 XOR 연산을 하여 아스키코드로 변환 후 문자열로 표 시해주는 코드임당!


정말 혁.명 이지 않나요. 파이썬 을 자주 쓰시는 분들은 이것이 당연할 수 있는데


저는 매우매우매우 ㅇㅅㅇ.... 이랬답니다... 아직 부족한 점이 많은거죠..낄낄...


이렇게 함수를 이용하는 법을 하나하나씩 주위에서 듣고 있습니다! 



사실 저것을 모를때, 파일 암호화를 해야하는데


저는 파일을 읽고 대문자<->소문자, 공백없애고, 거꾸로 출력하고, 문자열을 쉬프트(헉헉;;)하면 암호화가 되게찌!! 했지만


문자열 쉬프트 부분에서 좌절해서 허공을 해맬때 저 기가막힌 코드부분을 접하게 되었죠... 허허....



또한, lambda, map 등등... 새로운 신세계를 맛본 함수들이 많아요...ㅎㅎㅎ 


간단히 람다와 맵에 대해서 적어볼게요.


우선 lambda

람다다다람다....... 이것또한 예시로 이게 이거구나 이해했지만 어떻게 쓸줄 몰랐던 1인...


ex_code)

.....

def_ = lambda x(변수) : str(x) * 10


>>>def_('x')

'xxxxxxxxxx’


>>> 이것이 저대로 x라는 변수가 있으면 10번 곱해주는 ... 즉 저 부분을 예약해 두는 부분임당.

즉 람다 뒷부분의 부분을 = 앞에있는 것으로 예약을 해는거죠.


그냥 한줄의 예시로 소소속 봐볼게요.


>>> print '\n'.join(map(def_, [ i for i in s if i != ''] ) )


저기 아까 람다로 저장해둔 함수 'def_' 가 보이시나요.


이제 [] 안부터 봅시다.


i 에서 ( s안에있는 (만약 공백과!= 라면)) s 안에서 i 까지 


def_ 함수를 사용 하는데


map 함수를 이용합니다. # map(f,iterable) 는 함수f에 의해 실행된 결과를 묶어서 리턴하는 함수!


그리고 그것을 \n 을 기준으로 이어줍니다. (join)


매우매우 싱기방기!!!


 

3. 모듈


파이썬의 가장 강력크한 기능이라고 제 스스로 생각합니다 ㅎㅎㅎㅎ

자신이 만든 모듈로 가지고 import 하면 내 모듈을 어디서나 사용할 수 있으니까!!

개이득


사실 이부부은 제가 아직 공부해야할 부분임당.


from pwn import * 


를 쓰긴 하는데 어쩔때는 import 먼저하고... 이부분은 자세히 봐야할 부분쓰!



4. 생각하는대로 비비디바비디부


네, 맞아요. 

파이썬은 파이썬을 기초부터 한 사람에게는 생각하는 대로 코드를 짜면 되는 것입니다!


아까도 보셨듯이 한줄로 무려 함수가 4개나 사용이 되었는데... 저 코드는 제가 짠것이 아니고


파이썬을 계속 사용하시던 분이 정말 1초만에 생각대로 짜서 저에게 설명을 한것이죠... 허허...


저도 언젠간 생각하는대로 비비디바비디부가 될 수 있도록!!! 그날까지!!! 파이썬!!! 정말 혁신적인 언어임당.



정말 주저리주저리 순전히 제가 생각을 정리하는 목적으로 포스팅을 했슴당...ㅎㅎ 혹시 여기서 제가 잘못 알고있거나 이상하게 이해하고 있는 부분은 언제든지 말해주세요 :) 말안해주면... 모릅니당 :p



올바른 지식, 공유가 답이죠. (찡긋)

'공부' 카테고리의 다른 글

[pwnable.kr] [bof] bof sol  (0) 2016.11.18
[공부] [메모] 문제들을 풀면서 익힌 것들  (0) 2016.11.17
[poxx2016] boffee_write up  (0) 2016.10.29
[공부] 인투르 2  (0) 2016.10.29
[공부] 인투르  (0) 2016.10.22
[pwnable.kr] [fd] fd 문제  (0) 2016.07.12
0 Comments
댓글쓰기 폼