PE의 로더는 프로세스 메모리에 로딩한 후에 eip 레지스터 값을 설정한다. Entrypoint = Image Base(00400000) + Address of Entry Point(00001188) 엔트리포인트(코드 실행 진입점)는 피의구조에서 위 두개의 값을 더한 값이다. IAT(Import Address Table) 이 프로그램은 해시값도 알 수 있다 -> 무결성 입증 MAC = Created + Modified + Accessd C와 A는 변하지만 M은 바뀌지 않는다. 2019년도에 만들어진 파일임을 알 수 있다. (날짜까지 조작할 수 있는 프로그램도 있다 의료 진단서 같은거 조작ㄷㄷ) 이 프로그램은 exe파일의 autopsy 같다. 5C5E2465는 몇시인가? 디스크에 써질때는 big -endi..
수즈사 20연만에 픽업.... 무과금러라서 천장칠 정도만 딱 모아놨는데 10연차 두 번 돌리고 나왔다
바이러스 토탈 https://www.virustotal.com/ VirusTotal www.virustotal.com 악성코드 분석 결과부터 진행해보자. 과제: https://goodanice.tistory.com/15 c++ 로그인 프로그램 c는 exe 로 저장된다 누가 어떤 컴파일러로 언제 만들었는지 exe파일에 다 나와있다. PE(Portable excecutable) 구조는 암기 MBR (Master Boot Record) 446+64 (16*4-> 16= 13134[시작위치]4[크기])+2 VBR (Volumn Boot Record) NFT (Master File Table) MBR은 시그니처가 뒤에 나오는데, exe파일은 앞에 시그니처가 나온다 파일 헤더를 살펴보기 엔트리포인트(진입점) = i..
#include #include /* run this program using the console pauser or add your own getch, system("pause") or input loop */ struct Person { int age; }; void f1(int); void f2(char *); void f3(struct Person); int main(int argc, char *argv[]) { struct Person p1={100}; int a = 10; int b = 11; int c = 12; char *ptr="reversing"; int Arr[3] = {13, 14, 15}; //같은 타입의 데이터를 모아둔 집합 int i; printf("start\n"); for(..
코드 1 #include #include /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main(int argc, char *argv[]) { void f1(int); void f2(int); void f3(int); int a=1; int b=2; int c=3; int d[] = {4,5,6}; int *e=&a; int i; printf("start\n"); for(i=0;i
x96dbg 프로그램 설치 악성코드 발견 -> 분석 Dev-C++ 프로그램 사용변수 함수 제어문 배열 포인터 구조체 파일입출력 프로젝트 #include #include /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main(int argc, char *argv[]) { int i, j; //리버싱하면 변수 i, j는 안보이지만 있다는 건 안다. i=0; j=0; do { i=i+1; j=j+i; printf("%d %d", i, j); }while (i