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

이번에 무선 모듈을 사용해 인트라넷을 만들면 어떨까? 라는 생각을 하게 되었다. 그래서 아두이노 우노와 기타 물품들을 구매했었고 또 PC와의 시리얼 통신을 하는 방법에대해서도 공부를 시작했었다. 그리고 드디어 LoRa 모듈과 안테나가 바다를 건너 도착했다. 이 글을 쓰는 지금 디스코드 서버에서 내 친구 면접을 보고있다. 문제는 면접관들이 전부 면접자랑 아는 사이라 다들 웃참하는게 보인다. ㅋㅋㅋㅋㅋㅋㅋ 안테나와 LoRa 모듈은 다음 링크에서 구매했다. 구매 링크 SX1278 SX1276 LORA 모듈 TCXO 915MHZ 무선 RF E32-915T30D EBYTE 장거리 송수신기 IOT ▶ 구경하러가기 놀라운 가격과 트렌드를 발견하는 즐거움, 위메프 front.wemakeprice.com 2PCS 915..

아두이노에서 시리얼 포트로 데이터를 전송하는 함수는 다양하다. 이번에는 그 함수들의 사용법을 알아보자 첫번째로 기본적인 Serial.print() 함수이다. size_t print(const __FlashStringHelper *); size_t print(const String &); size_t print(const char[]); size_t print(char); size_t print(unsigned char, int = DEC); size_t print(int, int = DEC); size_t print(unsigned int, int = DEC); size_t print(long, int = DEC); size_t print(unsigned long, int = DEC); size_t pr..
우선 아두이노가 PC와 시리얼 통신을 하기 위해서는 아두이노에서 Baud Rate를 설정해줘야한다. 이번에는 아두이노에서 Baud Rate를 설정하는 방법을 알아보자. void setup() { Serial.begin(115200); // Baud Rate를 115200으로 설정 } void loop() { Serial.println("Hello World Arduino!"); delay(500); } 아두이노에서 시리얼 통신을 하기 위해서는 Serial이라고 하는 클래스를 사용한다. Serial 클래스에는 begin 메소드가 존재하는데 이 메소드가 아두이노에서 Baud Rate를 설정하는 함수이다. 이렇게 setup 함수에서 Baud Rate를 설정하고 loop 함수에서 통신을 시작한다.

이전 포트팅에서 정의한 함수를 분석해봤다면 기본적으로 Baud Rate가 115200으로 설정되는 것을 알수 있을 것이다. 하지만 다른 Baud Rate를 사용해야 할 일이 생길수도 있기 때문에 이번에는 Baud Rate를 원하는 값으로 설정하는 함수를 만들어보기로 한다. 이번에 사용되는 Windows API와 구조체는 다음과 같다. GetCommState function (winbase.h) - Win32 apps Retrieves the current control settings for a specified communications device. docs.microsoft.com SetCommState function (winbase.h) - Win32 apps Configures a commun..
기본적인 시리얼 포트와의 통신 방법은 다 알아봤다. 이제 배운 지식을 활용해 간단한 모듈을 만들어보는 것이다. 우선 첫번째로 시리얼 통신을 위해서는 시리얼 포트의 핸들이 필요하고 핸들을 얻기 위해서는 통신하고 싶은 시리얼 포트의 번호를 알아야한다. 즉 이번에는 시리얼 번호를 이용해 해당 시리얼 포트의 핸들을 반환해주는 함수를 만들어본다. 사용되는 Windows API와 구조체는 다음과 같다. CreateFileW function (fileapi.h) - Win32 apps Creates or opens a file or I/O device. The most commonly used I/O devices are as follows:\_file, file stream, directory, physical d..
사실 이 내용을 올려야 하나 말아야 하나 고민을 했지만 결국 번외로 올리기로 결정했다. 아마 지금까지 올린 코드만보고 컴파일 했을 때 정상적으로 출력되는 사람이 있는 한편 그렇지 않은 사람도 있을 것이다. 나는 이 블로그를 쓰기 전 처음에 미리 시도해봤을 때는 출력이 이상하게 되었다, 그래서 CommTimeouts이라는 것을 설정해줘야 한다는 글을 발견하였고 실제로 이것을 설정하니 오류가 해결되었다. 하지만 블로그를 쓰면서 다시 한번 테스트하니 해당 오류가 발생하지 않았다. 그래서 이건 간단하게 남기려고한다. #include #include int main(int argc, char *argv[]) { HANDLE hComm = CreateFileA("\\\\.\\COM3", GENERIC_READ | ..