일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- C언어 패킷캡쳐
- 윈도우 커널 드라이버
- Msvcrt.dll
- HackCTF
- Windows Kernel
- pwnable
- 개발하기
- ucrtbase.dll
- 시스템해킹
- arudino
- vcruntime140.dll
- packet capture
- 윈도우 커널 디버깅
- Windows
- 해킹
- 개발 환경 준비
- windows kernel debugging
- 바이트 오더
- Network Byte Order
- pcap packet capture
- 윈도우 커널
- 포너블
- Windows Kernel Debug
- hacking
- IAT Hooking
- pcap packet
- vcruntime.dll
- 네트워크 바이트 오더
- Windows Kernel Driver
- apphelp.dll
- Today
- Total
목록2021/07 (8)
미친해커

Step 7 문제의 외형은 Step 2와 닮아 있는데 클리어 방법은 전혀 다르다. 기존의 클리어 조건이 특정 값으로 Health를 변경하는 거였다면 Step 7의 클리어 조건은 Hit me를 클릭했을 때 Health가 2씩 증가되도록하면 된다. 우선 Health의 주소부터 찾아보자 이렇게 찾았다면 Step 5에서 배운 Find out what writes to this address 기능을 사용해 어느 부분에서 저 값이 쓰여지는지 추적하자 Find out what writes to this address의 사용법은 Step 5에서 알려줬으니 기억이 나지 않는다면 다시한번 보고오는것을 추천한다. 아무튼 이 기능을 이용해서 어느 부분에서 값이 -1 이 되는지 확인 할 수 있다. 어셈블리는 보면 'sub dw..

Step 6 문제의 제복은 Pointers(포인터)이다. 프로그래밍을 좀 해본 사람이라면 무슨 포인터가 무슨 말인지 눈치 챘을 것이다. 모르는 사람을 위해서 간단하게 설명하자면 100이라는 값이 존재하면 이 값을 가지고 있는 주소가 존재할 것이다. 그렇다면 이 주소도 어딘가에 존재 할 수 있는것이 아닌가? 이렇게 값이 존재하는 주소를 가지고 있는 것을 포인터라고 부른다. 클리어 방법은 Change pointer 버튼을 누르고나서 값을 5000으로 바꿔주면 클리어다. 위 그림과 같이 주소를 가지고 있는 타입을 포인터라고 부른다. 이번 문제에서는 이 포인터라고 하는 개념을 알아야만 문제를 해결 할 수 있다. 우선 늘 그랬던 Change value를 눌러가며 100이 저장되어 있는 주소를 찾아보자 이렇게 값을..

Step 5 문제는 문제 모양 자체는 Step 2와 비슷하지만 풀이법은 전혀 다르다. Step 5의 클리어 방법은 저번 문제들처럼 특정 값으로 변경시키는것이 아니라 Change value를 눌렀을 때 값이 변경되지 않도록 하는것이다. 우선 저 100 값부터 한번 찾아보자 지금까지 값을 찾는 방법은 많이 설명했으니 이제부터는 생략한다. 이렇게 값을 찾았으면 클리어 조건이 '값이 변경되지 않아야 한다.' 였다. 그렇다면 이 프로그램의 어디서 저 값이 변경되는지를 찾아야 한다. 치트엔진에는 저 값이 어디에서 변경되는지 찾아주는 기능이 존재한다. 그 기능을 이용하면 쉽게 찾을 수 있다. 위 그림과 같이 찾은 값을 리스트에 저장하고 리스트에 저장되어 있는 값에 마우스 우클릭을 한다. 그럼 옵션이 나오게 되는데 옵..

Step 4는 Step 2와 많이 닮아 있다. 왜냐하면 초기 값을 보여주고 이제는 버튼을 누르면 값이 줄어든다는 것을 모두가 예상하고 있을 것이다. 우선 설명을 간단히 읽어보자면 Helath와 Ammo의 값을 5000 이상으로 수정해주면 클리어라고 되어있다. 우선 100이라고 하는 값을 스캔해보자 검색된 값들이 나왔다. 이제 Hit me 를 클릭하여 Health의 값에 변화를 주고 다시 한번 검색해보자 뭔가 이상함을 알 수 있다. 지금까지 모든 값은 정수만 나왔었지만 이번에는 소수가 나왔기 때문이다, 시도해본 사람이라면 알 수 있겠지만 소수를 넣고 Next Scan을 해도 아무런 값도 나오지 않는다는 것을 알 수 있다. 어떻게 된걸까?? 그 이유는 자료형에 있다. 자료형이란 정수, 소수, 문자열과 같은 ..

Step 3는 Step 2와 비슷한데 다른 점이 있다면 초기 값 (풀피인 경우)이 몇인지 알려주지 않는다는거다. 하지만 설명을 읽어보면 값이 0~500 사이라고 알려주고 있고 클리어 방법은 이 값을 5000 이상으로 바꾸는 것이다. 그러면 초기 값을 정확히 알지 못해 어떻게 스타트를 해야하는지 막히게 되지만 치트엔진에는 Unknown value라고 값을 정확히 알 수 없을 때 사용하는 검색 옵션이 존재한다. 위와 같이 Scan Type을 Unknown initial value로 맞춰주고 스캔한다. 그 다음 왼쪽 리스트를 보면 아무것도 표시되진 않지만 왼쪽 리스트 위에 Found 된것을 확인 할 수 있다. 이 상태에서 Hit me를 눌러 체력을 깎아주자 그러면 HP가 몇이 깎였는지 나오게 된다. 우리는 이..

치트엔진 튜토리얼 Step 2 에서는 본격적으로 치트엔진을 사용해 해결하는 문제이다. 우선 클리어 방법은 Health를 1000으로 바꾸면 클리어이다. 우선 Hit me 버튼을 클릭해보자 Hit me 버튼을 클릭하면 Health가 점점 떨어진다. 그렇다면 Health의 값이 Hit me를 클릭할때마다 바뀐다는 것이다. 치트엔진에는 이 처럼 값이 바뀌는 변수를 검색 할 수 있는 기능이 있다. Value에 초기 값 (검색할 값)을 넣고 First Scan을 누르자 그러면 오른쪽 그림과 같이 96이라는 값을 가진 데이터들의 주소들이 검색되어 나온다. 지금은 검색된 주소? 값? 이 너무 많으니 Hit me를 눌러 값에 변화를 준다. 위와 같이 값이 바뀌었다 그렇다면 바뀐 값을 넣고 Next Scan을 눌러주자 ..