Nitraqu의 블로그

nitraqu.egloos.com

포토로그



x64dbg, Logging 기능 사용 C/C++

x64dbg의 디버깅 기능 사용 예제.

1. 매우 간단한 예제로, Loop를 돌면서 그 값을 출력하는 예제이다.

#include "stdafx.h"

int this_is_simple_loop_func(int input)
{	
	int myInput = input;	
	myInput *= 2;	
	return myInput;
}

int _tmain(int argc, _TCHAR* argv[]){	int myInt = 1;	

for (int i = 0; i < 10; i++)	
{		
	myInt = this_is_simple_loop_func(myInt);		
	printf("%d", myInt);	
}	
return 0;}



이어지는 내용

파이썬 커맨드 라인 방식 인터프리터 만들기 Python - Basic

파이썬 기본 라이브러리 중 하나인 
'cmd'를 이용하면 간단하게 CLI 기반 프로그램을 만들 수 있다. 

https://docs.python.org/3/library/cmd.html

를 살펴 보면 된다.

작업 중인 간단한 코드를 추가한다. 

기본적인 사용 법은

prompt 에서

'help'를 입력하여 실행 가능한 프로그램 목록 보기 

>help

Documented commands (type help <topic>):
========================================
echo  help  quit  status

Undocumented commands:
======================
connect  load_default_setting  send  set_ip

'help <명령어>' 를 입력해서 

>help echo
just test
>help quit
Quit the Program

do_xxx  함수의 설명 보기.. 등이 있다. 

이외에도 다양한 기능들이 있다. 
(내가 원하는 기능만 없다) 

 


이어지는 내용

localhost IPC 통신 모니터링/스니핑 데이터 분석


 종종 IPC (Inter-Process Communication)로 소켓을 사용하는 경우가 보인다.

 네트워크 프로그래밍을 조금만 해 보았어도 구현이 편리하고, 프로세스가 정지되는 상황을 만들 가능성이 더 낮아지기 때문에 좋은 방법일 수도 있다.

 이러한 네트워크 통신 방식을, 유닉스 도메인 소켓 (UDS : Unix Domain Socket) 이라고도 부르는데

 내부 소켓 통신은 물리적인 네트워크 카드(NIC)를 통해서 나가지 않기 때문에 Wireshark의 Winpcap 에서 잡히지 않는다. 

 하지만 분석을 하다 보면 보고 싶어지는 것이 당연하고, 누군가 볼 수 있는 방법을 만들어 놓았을 것으로 생각해서 검색해 보았다. 

 Windows의 커널/드라이버와 관련되서 깊은 이야기들이 오가는 글들을 많이 볼 수 있는데....
 
 걔중에 쉬운 2건을 정리해 두었다. 

 

 1.  nmap 쪽에서 개발한 'Npcap'을 설치한다. 

- Wireshark에서 'Loopback Adapter'를 선택한다.

- Npcap은 WPF (Windows Packet Filtering) 이라는 기술을 이용했다고 하며, 

- 아주 간단히 요약하면 커널 네트워크 스택의 상단 쪽의 드라이버에 훅(hook)을 걸었다고 생각하면 될 것 같다. 





 2. Local Network Monitor 라는 소프트웨어를 사용 (구매) 한다.

- https://www.ntkernel.com/local-network-monitor/

- Wireshark 보다는 조금 불편할 수 있지만, 프로세스 이름 및 통신 상태 등을 바로 확인할 수 있는 장점이 있다. 

- 일부 기능 제한이 있는 무료 버전이 있으며. 유료 버전도 50$ 정도로 ... 큰 부담은 없는 가격이다.  




Canopy Python 라이브러리 수동 설치 데이터 분석 - Python

Enthought Canopy 는 

iPython, Numpy, Scipy, Scikit-learn, Matplotlib 등 
기본적인 데이터 분석 라이브러리를 같이 설치해 주기 때문에 애용하는 IDE 중 하나이다. 

기본적으로 'Package Manager'를 제공하고 있기 때문에 
(유료버전에서는 이것 저것 많이 지원지만 무료 버전에서는....)

라이브러리를 인스톨 하기도 용이한 편인데...

offline으로 작업해야 하는 환경에서 설치 할 때는 매우 불편하다.
(비추다...)


preference 쪽에서 pythonpath를 지정해 줄 수 있기는 한데, 
기본 파이썬 패스를 지정해 줄거면 굳이 Canopy를 쓸 이유가 없으니

c 드라이브에서 'python.exe'를 검색하면 

python.exe 가 3군데 쯤에서 발견되는 것을 확인할 수 있다. 

1. Users/[계정명]/AppData/Local/Enthought/Canopy/edm/envs/User 
2. Users/[계정명]/AppData/Local/Enthought/Canopy/App/appdata/canopy-[버전명]
3. Users/[계정명]/AppData/Local/Enthought/Canopy/edm/runtime/7d/[아무리봐도 임시 생성 문자열]

이다. 

여기서 1번 위치에 python setup.py install 과 같은 명령어를 입력하면 

CANOPY에서 해당 모듈이 설치되어 있는 것을 확인할 수 있다. 


TSOP38238 피지컬 컴퓨팅


 아두이노를 이용한 적외선 센서 관련 블로그는 너무 많으므로 생략.

 SparkFun IR Control Kit

 https://www.sparkfun.com/products/13235

 를 이용해서 

 "IRRemote" 라이브러리를 이용한 통신 까지는 별 문제 없이 진행할 수 있었다. 
  
 * 이미 아두이노 내부에 IRRemote.h 가 있어서 컴파일 시 에러가 나는 사소한 문제는 있었으나, 해당 라이브러리의 이름을 변경해 주는 것으로 해결 
 * MAC OSX를 사용하고 있는 경우에는 "Arduino.app  밑에  Contents/Java/libraries" 에 위치하고 있다. 

 적외선 센서 (TSOP38238)의 출력을 
 '적외선'이 비추고 있을 때 True 
 '적외선'이 없으면 False 라고 생각을 하고 있었는데... 이 점 때문에 많은 착오를 겪었다. 

 적외선 센서는 On -> Off 로 갈 때 한 클락만 "False"가 된다.  (혹은 off->on 으로 갈 떄... 정확한 타이밍은 모르겠다) 


이어지는 내용

1 2 3 4 5 6 7 8 9 10 다음