일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 윈도우 커널 드라이버
- pcap packet capture
- arudino
- pwnable
- IAT Hooking
- apphelp.dll
- 해킹
- 윈도우 커널
- 바이트 오더
- vcruntime140.dll
- C언어 패킷캡쳐
- Windows Kernel
- 윈도우 커널 디버깅
- packet capture
- hacking
- Windows
- Msvcrt.dll
- 개발 환경 준비
- 네트워크 바이트 오더
- vcruntime.dll
- 시스템해킹
- ucrtbase.dll
- pcap packet
- Windows Kernel Driver
- 개발하기
- HackCTF
- 포너블
- Network Byte Order
- Windows Kernel Debug
- windows kernel debugging
- Today
- Total
목록전체 글 (118)
미친해커
GitHub - jungjin0003/Serial-Monitor Contribute to jungjin0003/Serial-Monitor development by creating an account on GitHub. github.com 해당 모듈은 위 깃헙에 커밋할 예정이다. 우선 아두이노는 시리얼 포트를 사용한다. 다른말로 COM 포트라고도 하는거 같다. 또 COM 포트는 각각 번호가 부여되어 있어서 COM1 ~ COM255까지 unsigned char의 범위 값 만큼 생성가능 한 것으로 보인다. (아마 USB랑 비슷한 취급인 것 같다) 먼저 아두이노를 컴퓨터에 연결하고 장치 관리자를 실행해준다. 많은 탭 중에 포트(COM & LPT) 탭을 열게되면 위와 같이 연결되어 통신할 수 있는 시리얼 포트들..
[Arduino] 아두이노 첫 시작 (기초공부) 매번 Windows 관련해서 C언어를 공부하다보니 이번에는 아두이노에 관한 프로그래밍을 공부해보기로 했다. 중학생 때 아두이노를 접해본 경험이 있어서 생각외로 쉽게 접근할 수 있었다. 아두이 crazyhacker.tistory.com 위 글을 쓰기 전 내가 아두이노와 PC가 통신하기 위해 시리얼 포트를 사용한다는 것을 알게 되었다. 그리고 인터넷에서 여러 아두이노 예제를 보았는데 대체로 사용하는 시리얼 모니터가 Arduino IDE에 기본적으로 탑제되어 있는 시리얼 모니터를 사용한다는 것을 알게되었다. Arduino IDE는 자바로 만들어져있고 시리얼 모니터 또한 자바로 제작되어 있다. 물론 정상적인 개발자라면 '뭐 괜찮네 쓸만한데' 라고 생각할 수 있겠지..
매번 Windows 관련해서 C언어를 공부하다보니 이번에는 아두이노에 관한 프로그래밍을 공부해보기로 했다. 중학생 때 아두이노를 접해본 경험이 있어서 생각외로 쉽게 접근할 수 있었다. 아두이노 기본 프로젝트를 만들면서 새롭게 알게된 점인데 아두이노는 C언어 인줄 알았지만 알고보니 C++ 이었다. 그래서 C++도 공부하기로 결정했다. void setup() { Serial.begin(115200); } void loop() { Serial.println("Hello World Arduino!"); delay(1000); } 아두이노는 기존의 (내가 알고 있는) 여러 OS나 Architecture와 다르게 main 함수가 존재하지 않는다. 위 코드는 setup 함수와 loop 함수만이 존재하는데 각각 함수별..
Step 2는 좀 불합리한 게임이다. 클리어 조건은 상대편 2명을 죽이면 된다. 다만 내 체력해 비해 상대방의 체력이 엄청 높고 공격력 조차도 차이가 심하다. 또 상대방 타게팅은 플레이어 고정이다. 이 조건에서 클리어를 하면 된다. 적의 체력을 모르니 당연히 처음은 Unknown initial value으로 스캔한다. 그 후 한 번 공격하고 Decreased value로 스캔을 반복한다. 이렇게 검색을 반복하다보면 다음과 같은 값을 볼 수 있다. 이제는 눈치껏 저렇게 두 값이 적 한명의 체력과 플레이어의 체력이라는걸 직감할 수 있다. 적의 체력을 리스트로 가져오고 Find out what writes to this address 기능을 사용한다. 그러면 위와 같이 하나의 Instruction이 잡히는걸 ..
Cheat Engine Tutorial을 모두 클리어했다면 이제부터는 Tutorial Game으로 넘어오게 된다. 혹시라도 Tutorial Game을 실행하고 싶다면 아래 더보기에 설명해두었다. 더보기 Game Step 1은 과녁의 체력을 모두 깎으면 클리어다. 하지만 게임을 플레이해봤으면 알겠지만 5발을 모두 맞춰야 클리어가 가능하지만 리로드 하는 동안 과녁의 HP가 다시 충전된다. 이 부분을 해결해 클리어하면 된다. 필자는 과녁의 체력을 찾아서 클리어할 예정이다. 다른 여러 클리어 방법도 있지만 그건 직접 해보는 것을 추천한다. 우선 Unknown initial value로 First Scan을 한다. 체력의 정확한 값을 알 수 없으니 체력이 증감하는 것을 이용하여 체력의 주소를 구할 것이다. 위 사..
Step 9의 주제는 Shared Code이다. Shared Code란 코드를 공유하는 것을 말한다. 예를 들어 캐릭터가 존재하고 대미지를 받는 함수가 존재한다고 했을 때 대미지를 받는 함수를 캐릭터마다 만든다면 메모리 낭비가 심할 수 있다. 이런 경우 대미지를 받는 함수를 하나만 만들고 모든 캐릭터가 그 함수를 사용한다면 메모리를 최소화하여 사용할 수 있다. 그리고 이번 Step의 클리어 조건은 Restart game and autoplay 버튼을 눌렀을 때 Dave팀이 승리하면 된다. 우선 Restart game and autoplay 버튼을 눌러보자 우리팀이 모두 죽었다고 나오는 것을 확인할 수 있다. 그렇다면 일단 Dave의 체력을 검색해보자 (Restart game 버튼을 누르면 체력이 모두 초..