일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 시탭
- 해킹캠프
- 풀이
- 파이썬
- 드림핵
- 2021
- 라업
- vsCode
- 라이트 업
- probgame
- hackingcamp
- 라이트업
- 뭉뭉
- ShaktiCTF
- c언어
- 강의
- 워 게임
- reversing.kr
- 히공
- web
- 변수
- ctf
- write-up
- 리버싱
- 코드엔진
- write up
- PYTHON
- reversing
- Basic
- 리버스 엔지니어링
목록히공 (61)
히공
while은 아주 많이 쓰이는 친구입니다. while은 반복하는 반복문입니다. while의 형태는 while 조건식: 종속문장1 else: 종속문장2 이런 식으로 쓰입니다. 해석하자면 "while 조건식"은 조건식이 참일 때 종속문장 1을 무한 반복해라. "else" while의 조건식이 거짓일 때 종속문장 2를 한번 실행하라 입니다. 예시를 보도록 하겠습니다. i가 5일 때 "참"이라고 무한 출력해라 아닐시 "거짓"이라고 출력을 한 번 해라 i는 5니깐 참을 무한 출력 하는 것을 보실 수 있습니다. i가 5보다 작지 않아서 거짓이라고 한번 출력하는 겁니다. 이제부터 굉장히 쓸모있는 것을 배워볼 겁니다. 처음에 i가 0이니 반복을 출력 그다음에 1일 되고, 2가 되고, 3이 되다가 5가 되니깐 더는 출력..
position문제를 풀어보겠습니다. 맞다. 틀렸다를 출력하는 함수 입니다. 이 함수를 분석하겠습니다. 일단 while 조건문을 보면 name의 각 문자들이 a~z 여야만 한다고 합니다. signed int __stdcall sub_401740(int a1) { int v1; // edi int v3; // esi int v4; // esi __int16 v5; // bx unsigned __int8 v6; // al unsigned __int8 v7; // ST2C_1 unsigned __int8 v8; // al unsigned __int8 v9; // bl wchar_t *buf; // eax __int16 v11; // di wchar_t *v12; // eax __int16 v13; // di ..
보호되어 있는 글입니다.
안녕하세요. 오늘은 파이썬에서 아주 중요한 반복문을 알아보도록 하겠습니다. 『반복문이란』 일단 반복문은 말 그대로 반복하는 문입니다. 계속 a라는 변수를 출력하고 싶으면 반복문을 이용해 a를 계속 출력하는 겁니다. for 오늘 다룰 반복 함수 for을 알아봅시다. for 변수 in range(초기값,끝값,증가값): 종속절 이런 식으로 쓰입니다. 뜻은 (초깃값)부터 (끝값-1)까지 증가 값만큼 증가하면서 반복하란 소리입니다. 복잡한 거 같지만 1도 복잡하지 않아요 여기 사진을 보면 for i in range(1,11,1) 이라고 있는 줄을 해석하자면 1부터 10까지 1씩 더하면서 반복하라는 겁니다. 그러면 i 출력하는 것을 10번 해야겠죠? 근데 i라는 변수는 어디서 튀어나온 것일까요? 이 사진을 보면 0..
오늘은 파이썬에서 if문에 대해서 알아보겠습니다. 2, 3줄을 해석하자면 num이란 변수가 5하고 같으면 "숫자가 5입니다."를 출력하라 라는 뜻입니다. 여기서 알 수 있듯 if 조건문: 하고 싶은 것 if는 이런식으로 쓰는것입니다. 정확히 하자면 조건문이 True일때 들여쓰기된 부분들을 실행 합니다. (나중에 알게 됩니다.) 이제 한번 if문을 활용해서 짝수 구별 프로그램을 만들어 볼까요? 여기서 보시면(a%2 == 0 이란거는 a를 2로 나눈 나머지가 0하고 같으면) 이란 뜻입니다. a를 2로 나눠 나머지가 0인 게 짝수지요? if 문을 활용한다면 이것 말고도 날짜계산기도 만들 수 있습니다. 이건 날짜계산 입니다. 날짜를 집어넣으면 몇 요일인지 알려주는 프로그램이지요. if가 얼마나 좋은친구인지 아시..
논리연산자 and 둘 중 하나가 거짓이면 거짓 or 둘 중 하나가 참이면 참 not 참이면 거짓 입니다. 3번째줄 a and a를 해석하자면 True True 둘다 참이니까 참 4번째줄 a and b는 둘중 하나가 거짓이니깐 거짓 5번째줄 b and b는 둘다 거짓이기때문에 거짓 입니다. or입니다. 3번째줄 a or a는 둘다 참 이기 때문에 참 4번째줄 a or b는 둘중 하나가 참 이기 때문에 참 5번째줄 b or b는 둘다 거짓이기 때문에 거짓 이 논리연산자는 나에 배울 if문에서 정말 필요하니까 잘 알아두시는게 좋을꺼 같습니다.
ImagePrc 문제를 풀어보겠습니다. 실행화면 입니다. 그냥 아무거나 그리고 Check 버튼을 눌러보았습니다. WinMain 함수 입니다. WndProc 으로 보이는 함수 입니다. (인자도 WndProc 함수랑 같기 때문입니다) 27줄에서 CreateComatibleBitmap(v7,200,150)으로 비트맵을 만듭니다. msdn 주소 : 여기 비트맵의 크기는 200px, 150px 입니다. string 검색 Wrong을 찾았습니다. 여기서 x를 누르니 어디서 사용되는지 알려줍니다. 바로 여기 입니다. 24비트맵이란걸 알 수 있습니다. 여기서 비교를 해서 그린 그림이 맞는지 아닌지 검사합니다. x32dbg로 아까 그 부분을 열었습니다. 반복문 시작 전에 bp를 걸어주었습니다. 이런식으로 칠해주고 Che..
input함수를 공부하도록 하겠습니다. input은 무엇이냐 하면 input은 입력하는 값을 받아오는 함수입니다. a = input() 이란 거는 입력하는 값을 a에 저장한다는 의미입니다. 이런식으로 print와 이어서 쓸 수 있겠죵? 이거 뭔가 이상합니다. 분명 1하고 2를 입력하고 더했는데 왜 12가 나오지요? 3이 나와야 하는 거 아닌가요? input 함수는 기본적으로 받아온 값을 str 문자열 함수로 받아옵니다. python 3번 강의에서 보여드렸듯 문자열 1, 2를 더했으니 붙여서 12가 나온 겁니다. 그러면 문자열 말고 정수로 만드는 법은 없을까요? 이런식으로 하면 됩니다. 1하고 5를 입력했으니 6이 나오는게 당연하지요. 이런식으로 실수 형태도 가능합니다. 이런식으로도 가능합니다. 아까 까지..