일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리버스 엔지니어링
- vsCode
- ctf
- write up
- reversing
- 라이트업
- 파이썬
- 워 게임
- 라이트 업
- ShaktiCTF
- 리버싱
- 풀이
- 변수
- web
- 드림핵
- PYTHON
- hackingcamp
- reversing.kr
- 2021
- Basic
- c언어
- 시탭
- 강의
- write-up
- 히공
- 해킹캠프
- 코드엔진
- 뭉뭉
- 라업
- probgame
목록히공 (61)
히공
문제 입니다. 실행화면 입니다. x32dbg로 열었습니다. 원본 코드를 복호화 하는 작업 같습니다. f9를 눌러줍니다. 문자열을 찾아줍니다. 실패 메세지로 이동합니다. 여기가 체크 하는 부분입니다. bp를 걸어줍니다. 비번값인 "1234"와 "LOD-59919-A0024900"를 비교합니다. 정답 입니다. ++ 페스워드 생성 루틴을 분석하겠습니다. 0x401127에 bp를 걸어줍니다. 를 입력해주고 Test를 눌러줍니다. for문을 돌려 페스워드 값을 만듭니다. def dword(a1): return a1 & 0xffffffff Name = input("input name : ") esi = 0 ecx = 0 edx = 0xA edi = 0 for i in Name: eax = ord(i)+1 eax+=..
이러한 문제입니다. 이런식으로 출력이 됩니다. x32dbg에서 No, that is not the.....를 찾았습니다. GetDlgItemTextA밑에 bp를 걸어줍니다. Name값을 가져옵니다. 그리고 GetDlgItemTextA의 반환값이 3이하면 틀렸다는 메세지를 출력합니다. 그 다음 GetDlgItemTextA에서는 비번값을 가져옵니다. lstrcmpA로 입력한 비번과 3265754874를 비교합니다. 입력했습니다. 반환값이 0 입니다. 근데 이상합니다. 현재 eax값은 0인데 0을 0으로 나누면 오류가 납니다. 이러한 오류가 뜹니다. 한번 더 F8을 누르니 정답이라고 뜹니다. 문자열 찾기로 성공 메세지로 왔습니다. 여기에 bp를 걸고 다시 실행해봤습니다. 다시 입력해 줍니다. 이 곳으로 와서 ..
이 문제는 windows 10에서 실행이 안됩니다. windows 7환경에서 실행해야 합니다. 이러한 문제 입니다. 실행화면 입니다. 메인 함수 입니다. 입력받는 부분 입니다. 핵심 함수 입니다. 1234를 입력하고 핵심 함수로 왔습니다. f7로 들어가겠습니다. 한 요소씩 C R A A A C K E D ! 하고 비교하는걸 볼 수 있습니다. 성공 정답 : CRAAACKED!
파일입출력을 배워보도록 하겠습니다. 파일입출력의 기본적인 예시 입니다. open이란 함수를 사용합니다. 변수 = open(파일주소, 모드, 인코딩 방식) 변수.close() 이런식으로 사용합니다. file폴더 안에 test.txt 파일에 "테스트"라는 글자를 쓴 것 입니다. (open을 쓰면 close를 해줘야 합니다.) 여기를 보시면 'w'가 'r'로 바뀌었지요? 모드를 읽기로 열었습니다. 변수명.read() 이런식으로 사용한답니다. (5번째 줄은 f.close()입니다.) 여기를 보시면 4번째 줄에 readlines()라는 친구를 사용했습니다. readlines는 파일을 읽고, 줄바꿈을 기준으로 리스트로 치환하는겁니다. 그래서 aa\n, bb로 치환되었습니다. (5번째 줄은 f.close()입니다.)..
이러한 문제입니다. 패킹 되어있습니다. 이 곳에 bp를 걸고 f9를 눌러 실행해 줍시다. 원본 코드 입니다. f9를 눌러 실행을 했더니 안티디버깅 기법을 사용했는지 에러 메세지를 출력합니다. 호출하는 함수를 찾습니다. bp를 걸어줍니다. f9를 이용해 실행하니 여기서 멈췄습니다. 이 부분을 je로 변경해줍니다. 그 후 timeGetTime함수에 bp를 걸어줍니다. docs.microsoft.com/en-us/windows/win32/api/timeapi/nf-timeapi-timegettime timeGetTime function (timeapi.h) - Win32 apps The timeGetTime function retrieves the system time, in milliseconds. The ..
【딕셔너리】 딕셔너리 입니다. 딕셔너리(dictionary)는 index를 사용하지 않습니다. 예제를 통해 이해해봅시다. 딕셔너리는 중괄호{}를 이용합니다. 그리고 key, value라는 것을 사용합니다. 여기서 key는 '학번', '이름'이 있고, value는 20207, '김히공'이 있습니다. 『딕셔너리 함수』 keys() key list dic.keys() values() value list dic.values() items() key,value 리스트 dic.items() clear() 항목 모두 삭제 dic.clear() get() 키카 없으면 : none 키가 있으면 : value 출력 dic.get(key) setdefault() key가 없으면 추가 설정 dic.setdefault(키,값)..
『Tuple』 튜플 tuple은 list 같은자료형 입니다. 특징으로는 데이터 변경 불가능합니다. 예제를 봅시다. 튜플은 ()를 씁니다. (여기서 type함수는 변수의 자료형을 알려주는 함수 입니다.) 튜플도 list처럼 len을 쓸 수 있습니다. tuple packing ()를 안 써도 자동으로 tuple로 만들어집니다.