파이썬에서 비동기 처리 방식을 공부해보았다. 기본적인 문법은 다음과 같다. 이런 비동기 함수를 코루틴이라고 부른다. async def do_async(): pass 생성된 코루틴은 일반 함수를 호출하듯 호출하면 된다. 코루틴을 다른 코루틴에서 호출하기 위해서는 await 키워드를 붙여 호출해야 한다. async def main_async(): await do_async() 그리고 일반 함수에서 코루틴을 호출하기 위해서는 asyncio 라이브러리의 이벤트 루프를 이용해야 한다. loop = asyncio.get_event_loop() loop.run_until_complete(main_async()) loop.close() 파이썬3.7 이상은 다음과 같이 코루틴을 호출할 수 있다. asyncio.run(m..
import os path = "/Users/a111/pic" count = len(os.listdir(path)) i = 1 for filename in os.listdir(path): file_oldname = filename file_oldname = os.path.join(path,file_oldname) file_newname = str(i)+".JPG" file_newname = os.path.join(path,file_newname) os.rename(file_oldname,file_newname) i += 1 if(i == count): break for filename in os.listdir(path): print(filename)
메모리 맵 파일을 사용하려면 다음 세 단계를 수행해야한다. - 메모리 맵 파일로 사용할 디스크 상의 파일을 나타내는 커널 오브젝트를 생성하거나 연다.(CreateFile) - 파일의 크기와 접근 방식을 고려해 파일 매핑 커널 오브젝트를 생성한다.(CreateFileMapping) - 포르세스의 주소 공간 상에 파일 매핑 오브젝트의 전체나 일부를 매핑시킨다.(MapViewOfFile) CreateFile 핸들을 받아와 파일 혹은 오브젝트를 생성하거나 열 수 있는 함수. 이 함수를 사용해 운영체제에게 파일 매핑을 수행할 파일의 물리 저장소를 알려준다. HANDLE CreateFile( LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECUR..
IPC를 하기 위해서 공유 메모리를 사용하기로 했다. 먼저 IPC 통신이란 프로세스간에 의사소통을 하는 것을 말한다. 이는 서로 데이터를 주고 받을 수 있다는 것이며 동시에 접근이 가능한 메모리가 필요하다는 것이다. IPC 종류 1. 공유 메모리 - 일반적으로 각 프로세스들은 고유의 메모리를 사용한다. - 공유 메모리를 통해 둘 이상의 프로세스가 메모리에 접근할 수 있는 개념으로 한 프로세스에서 변경한 메모리 공간의 내용을 다른 프로세스에서도 접근이 가능하다. - 메모리에 여러 cpu가 접근하기 때문에 각 클라이언트 pc가 자신만의 캐시를 가지고 있을 때, 공유 메모리를 사용할 때마다 캐시의 갱신으로 캐시 데이터가 불일치하는 캐시 일관성 문제가 발생할 수 있다. 이런 캐시 일관성 문제가 가장 다루기 어려..
#include "pin.H" #include #include #include #include #include // #define start 0x7FFD95D65A90 // #define end 0x7FFD95D6602D //#define start 0x7FFC46E42DD0 //#define end 0x7FFC46E43067 #define start 0x7FFC46E428A0 #define end 0x7FFC46E42AB1 #define XOR 49 #define SHL 193 #define SHR 193 #define AND 129 UINT8 Xcount = 0; UINT8 Acount = 0; UINT8 Rcount = 0; UINT8 Lcount = 0; using namespace std; KN..
cuckoo sandbox를 활용해 멀웨어 분석에 필요한 프로세스를 실행해야 한다. 이를 위한 패키지를 만들어봤다. 먼저 cuckoo github의 다음 경로의 process를 주로 활용한다. https://github.com/cuckoosandbox/cuckoo/tree/master/cuckoo/data/analyzer/windows/lib/api GitHub - cuckoosandbox/cuckoo: Cuckoo Sandbox is an automated dynamic malware analysis system Cuckoo Sandbox is an automated dynamic malware analysis system - GitHub - cuckoosandbox/cuckoo: Cuckoo Sand..
C++클래스와 리버스 엔지니어링 C++은 C와 달리 이 부분이 변수 선언이고 클래스 인지 구분이 쉽지않다. 이를 확인하기 위해선 메모리 사용량과 함수의 구조적인 부분을 살펴보면서 판단해야 한다. #include "windows.h" #include "stdio.h" #include "tchar.h" class Employee { public: int number; char name[128]; long pay; void ShowData(); void Test(); }; void Employee::ShowData() { printf("number: %d\n", number); printf("name: %s\n", name); printf("pay: %d\n", pay); Test(); return; } vo..
02. C 문법과 디스어셈블링 함수의 기본 구조 리버싱 엔지니어링에서 가장 큰 골칫거리는 개발자가 직접 코딩한 부분이 아니라 빌드 시에 컴파일러가 자동으로 생성해내는 코드를 필터링하는 것이다. 이런 필요없는 부분을 넘어갈 수 있어야 한다. 간단하게 예시들을 살펴보자. int sum(int a, int b){ int c =a+b; return c; } 2줄짜리 함수도 디스어셈해보니 10줄이 된다. 여기서 필요없는 부분을 걸러내는게 중요하다. ebp는 Extended Base Pointer로 스택 베이스 포인터로, 스택에서 사용될 함수의 시작 기준점을 잡는 레지스터이다. 먼저 시작의 push ebp, mov ebp, esp가 보인다. 이 부분을 프롤로그, 시작 부분이다. 함수를 호출해 스택에서 사용하겠다는 ..
ㅋ책을 보고 공부한 내용을 정리함. 책의 내용들은 IA-32를 기본 플랫폼으로 하고 있다. 01. 리버스 엔지니어링 기본 01.리버스 엔지니어링만을 위한 어셈블리 어셈블리 기본 구조 먼저 아래 psudo code를 예시의 어셈블리어로 바꿔본다. void 물마심(){ BOOL bOpen = 냉장고 오픈(); if(bOpen){ 물을 꺼냄(); 물을 마심(); } } __asm{ 냉장고 앞으로 간다 낭장고 문을 잡는다 냉장고 문을 연다 오픈 성공: 냉장고 안을 본다 손을 든다 냉장고 안에 넣는다 물병을 잡는다 물병을 꺼낸다 뚜껑을 연다 컵을 잡는다. 물을 따른다. 컵에 든 물을 마신다. 위에서 보듯이 어셈블리어는 한번에 하나의 동작만을 수행할 수 있다. 이처럼 어셈블리어는 코드를 한두줄만 봐선 어떤 동작을 ..
- Total
- Today
- Yesterday
- one-to-many
- SVM
- 이상탐지
- many-to-one
- 회귀
- porks
- CAN-FD
- AE
- 논문 잘 쓰는법
- PCA
- automotive
- Python
- 머신러닝
- many-to-many
- problem statement
- SOME/IP
- 단순선형회귀
- 로지스틱회귀
- Ethernet
- 차량 네트워크
- automotive ethernet
- AVTP
- 차량용 이더넷
- cuckoo
- 딥러닝
- 크로스 엔트로피
- HTML
- 케라스
- json2html
- AVB
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |