본문 바로가기

Malware Analysis/- Knowledge storage

(10)
size_t??? 원문 : size_t is an unsigned data type defined by several C/C++ standards, e.g. the C99 ISO/IEC 9899 standard, that is defined in stddef.h.1 It can be further imported by inclusion of stdlib.h as this file internally sub includes stddef.h. This type is used to represent the size of an object. Library functions that take or return sizes expect them to be of type or have the return type of size_t. F..
Difference between Multiprocessing and Multithreading (출처 :https://www.youtube.com/watch?v=NxR6IgP3bUc) 우선, 사전적으로 어떤 차이가 있는지 위키백과를 통해 알아보자. Multiprocessing(다중 처리) 다중 처리는 컴퓨터 시스템 한 대에 둘 이상의 중앙 처리 장치(CPU)를 이용하여 병렬로 처리하는 것을 가리킨다. 또, 이 용어는 하나 이상의 프로세서를 지원하는 시스템의 능력, 또는 이들 사이의 태스크를 할당하는 능력을 가리키기도 한다. 다중 처리 시스템은 다중 처리가 적용된 시스템을 뜻한다. 다중 처리 시스템에서는 여러 개의 프로세서가 하나의 메모리를 공유하여 사용하는 시스템이며, 일반적으로 하나의 운영 체제가 모든 프로세서를 제어한다. [특징] - 프로세서를 여러 개 사용하여 여러 개의 작업을 동시에 수행함..
win32 API GetComputerName ( API 모든 출처는 MSDN 아닌 경우 별도 표시) 로컬 컴퓨터의 NetBIOS 이름을 검색하는 함수이다. 이 이름은 시스템 시작시 시스템이 레지스트리에서 읽을 때 설정된다. GetComputerName은 로컬 컴퓨터의NetBIOS 이름 만 검색하기 때문에 DNS 호스트 이름, DNS 도메인 이름 또는 정규화된 DNS 이름을 검색하려면 GetComputerNameEx 함수를 호출해야한다. 함수의 원형 :BOOL WINAPI GetComputerName ( _Out_ LPTSTR lpBuffer, _Inout_ LPDWORD lpnSize ); 매개 변수 : lpBuffer : 컴퓨터 이름 또는 클러스터 가상 서버 이름을 수신하는 버퍼에 대한 포인터이다. 버퍼의 크기는 컴퓨..
Remote deburger 호스트 컴퓨터를 지키기위한 원격 디버그 포스팅! 1. IDA가있는 디렉터리에 dbgsv디렉터리에 들어가보면 다음과 같이 reomote실행파일을 볼 수 있다. 본인 vmware에 맞게 복사를 한다. 2. vmware에 디버그할 악성코드가있는 경로에 붙여 넣기를 한다. 3. vmware에서 관리자 권한으로 cmd를 실행 후 해당 win32_remote.exe와 악성코드 샘플이 있는 디렉터리로 이동 후 win32_remote.exe를 실행(여기서 나온 my ip를 기억해야 한다.! ) 4. host에서 malware_sample1를 ida로 열고 원하는 위치에 breakpoint를 설정해준다. 그 다음 밑줄 친 부분을 remote window deburger로 바꾸고 yes 를 눌러준다. 5. 그럼 다음과 같..
해시(hash) vs 암호화(encryption) 해시(hash)란? 해시 함수는 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다. 해시의 대표적인 종류로는 MD5, SHA 계역 해쉬함수가 있으며 비암호적 해시함수로는 CRC32등이 있다. 해시변환 테스트를 원하면 구글에 'online hash' 키워드로 접근하면 쉽게 찾을 수 있다. 이제 해시 함수의 특징에 대해 알아보자. 1). 단방향성 - 예를들어, 바나나 우유가 해시라고 한다면 바나나는 원래의 정보이다. 바나나(원래의 정보)를 믹서기에 갈아서 바나나 우유(해시)를 만들면 다시 바나나로 만들기는 거의 불가능하다. 이처럼 얻어진 결과값(해시)을 가지고 원래의 정보를 알아내기란 현재의 컴퓨터 기술로는 매우 어렵다. 따라서 해시는 password로 많이 사용된다. 본인외에는 해시값을 모른..
adc, sbb, carry flag, overflow flag 이해하기(+cmp) what is the adc, sbb?? 해석을 해보자면..(잘 못하지만) 당신의 프로세서 레지스터 사이즈보다 더 큰 수가 더해지거나 빼질 경우 ADC와 SBB 지시자를 사용할 수 있다고 한다. add dest, source 가 dest = dest + source라고한다면, adc는 dest = dest + source + carry flag sub dest, source 가 dest = dest - source라고한다면, sbb는 dest = dest - source - carry flag 이다. 그렇다면 carry flag란 무엇인가. carry flag는 overflow flag와 혼동될 수 있는 flag이다. 둘의 차이에 대해 알아보자. 예를 들어, (4bit 연산을 한다고 가정) 1000+10..
JSON?? JSON은 JavaScript Object Notation의 약자로서 JavaScript문법에 영향을 받아 개발된 데이터 표현 방식이다. JSON은 데이터를 교환하는 한 포맷으로서 그 단순함과 유연성 때문에 널리 사용되고 있다. 특히 웹브라우져와 웹서버 사이에 데이터를 교환하는 데 많이 사용하고 있다. 가장 많이 사용되는 JSON 포맷은 Key-Value Pair의 컬렉션이다. Python은 기본적으로 JSON표준 라이브러리(json)를 제공하고 있는데, "import json"을 통해 JSON 라이브러리를 이용 가능하다. JSON 라이브러리를 사용하면, Python 타입의 Object를 JSON문자열로 변경할 수 있고, 반대로 JSON 문자열을 다시 python 타입으로 변환할 수 있다. JSON인코딩..
malwares,virustotal python script malwares,virustotal python script 먼저, 두 사이트는 모두 API를 제공한다. API란 무엇인가?.. API는 Application Programming Interface의 약자이다. 응용 프로그램 개발자들이 애플리케이션을 만들 떄 운영체제에서 동작하는 프로그램을 쉽게 만들 수 있도록 화면 구성이나 프로그램 동작에 필요한 각종 함수를 모아놓은 것을 말한다. 위 그림에서 예를 들면 API는 메뉴판 라이브러리는 주방이라고 볼 수 있다. C언어에서 printf는 메뉴판(API)을 통해 주방(라이브러리)에서 printf()의 완성된 함수 양식을 꺼내어 보여주고, 손님은 그것을 이용할 수 있습니다. 그럼 이제 API를 알고 malwares.com부터 알아 보도록하겠습니다.! malwar..