일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Windows Kernel Debug
- 윈도우 커널
- pcap packet capture
- Windows
- 개발하기
- HackCTF
- 윈도우 커널 디버깅
- pwnable
- packet capture
- 개발 환경 준비
- apphelp.dll
- pcap packet
- Network Byte Order
- 네트워크 바이트 오더
- hacking
- vcruntime140.dll
- arudino
- Windows Kernel Driver
- 포너블
- ucrtbase.dll
- 시스템해킹
- IAT Hooking
- 윈도우 커널 드라이버
- windows kernel debugging
- Windows Kernel
- 해킹
- vcruntime.dll
- Today
- Total
목록2021/12/27 (3)
미친해커
사실 이 내용을 올려야 하나 말아야 하나 고민을 했지만 결국 번외로 올리기로 결정했다. 아마 지금까지 올린 코드만보고 컴파일 했을 때 정상적으로 출력되는 사람이 있는 한편 그렇지 않은 사람도 있을 것이다. 나는 이 블로그를 쓰기 전 처음에 미리 시도해봤을 때는 출력이 이상하게 되었다, 그래서 CommTimeouts이라는 것을 설정해줘야 한다는 글을 발견하였고 실제로 이것을 설정하니 오류가 해결되었다. 하지만 블로그를 쓰면서 다시 한번 테스트하니 해당 오류가 발생하지 않았다. 그래서 이건 간단하게 남기려고한다. #include #include int main(int argc, char *argv[]) { HANDLE hComm = CreateFileA("\\\\.\\COM3", GENERIC_READ | ..

데이터 쓰기까지 끝난다면 이제 확실하게 간단한 모듈을 만들 준비는 끝난다. 테스트를 위해 아두이노의 코드를 다음과 같이 변경했다. void setup() { Serial.begin(115200); } void loop() { if (Serial.available()) { char name[16] = { 0, }; Serial.readBytesUntil(0x00, name, 16); char buffer[32] = { 0, }; sprintf(buffer, "Hello %s!", name); Serial.println(buffer); } } 시리얼 포트로부터 아두이노가 메시지를 받고 그 앞에 Hello를 붙여서 PC로 전송해주는 코드이다. 이렇게 PC와 아두이노가 정상적으로 통신하는지를 확인할 수 있게된다..
이제는 데이터를 읽을 차례이다. Windows에서 Baud Rate는 기본적으로 9600으로 설정되는 모양이다. 하지만 나는 직접 115200을 설정해 사용할 생각이다. 우선 다음과 같은 코드를 아두이노에 업로드했다. void setup() { Serial.begin(115200); } void loop() { Serial.println("Hello World Arduino!"); delay(1000); } 간단하게 설명하자면 begin 함수를 Baud Rate를 설정하는 함수이다. 그리고 1초에 한번씩 "Hello World Arduino!"라는 문자열을 시리얼 포트로 보낸다. 우리는 이 데이터를 Windows에서 읽어 출력하면 성공이다. ReadFile function (fileapi.h) - Win..