본문 바로가기

프로젝트

awardhotspot 백신 V.0.2 v.0.1버전에서 왠지 꺼림찍한부분인게,폴더명들이 다 랜덤한문자열로 되있는것 같아서 혹시 제 바이러스이름이랑 다를수 있어서일단 폴더명이랑 전혀 관계없이 바이러스 기능이 같으면 잡도록 했습니다.또 추가한점은 창 크기를 줄이는 대신 가로로 스크롤바를 넣었으며, 이제는 삭제안된파일들은삭제 안 됨-파일명 이렇게 뜨게됩니다.참고로 바이러스는 치료하는게 아니라 삭제시킵니다.감염된 바이러스가아니라 그 자체가 이미 바이러스라서 그냥 삭제했습니다.그리고 테스트할때 쫌 멘붕했었는데 그냥 삭제하고 크롬을 새로고침한다고 없어지는것이 아니라크롬을 종료하고 다시 켜야지 사라지네요. awardhotspot제거하실때 이거 쓰시면 됩니다. 더보기
awardhotspot 백신 v.0.1 가장 최근버전 : V.0.2http://indosm.tistory.com/entry/awardhotspot-%EB%B0%B1%EC%8B%A0-V02 ------------------------------------------------------------------------------------------------------------------그냥 저도 짜증나서 awardhotspot이란 바이러스란 프로그램을 분석해봤는데꽤나 많은 분이 바이러스 해결법을 찾아서 제 블로그로 들어오시더라고요.그래서 한번 간단하게나마 백신을 만들어봤습니다.소스는 간단하게 저번에 분석글에서 처럼 바이러스가 있는 폴더의 파일(json파일)들의 hex값에서 awardhotspot바이러스의 signature를 비교해서 맞으면.. 더보기
정폭도형에 대해서 알아보자! 학교에서 선생님께서 정폭도형이라는 특이한 도형에 대해서 예기해주셨는데요.정폭도형이란 어느 방향에서 재어도 폭이 일정한 도형을 말하는데요,그림을 보면서 설명드리자면 한 꼭짓점에서 맞은 변까지의 거리가 모든 꼭짓점에서 일치하는 도형입니다. 물론 정폭도형은 이런 삼각형뿐만이 아니라 이렇게 삼각형,오각형,칠각형,구각형 등이 있습니다.근데 여기서 왜 사각형, 육각형 등 짝수변을 가진 정폭도형은 업냐? 라는 생각이 들수 있는데요, 바로 짝수변을 가진 정폭도형은 맞은 변이란 존재가 없어서 그렇습니다.그렇게 알아두시고 이제 왜 정폭도형이란 개념을 꺼냈냐 하면 바로 정폭도형을 회전시키면 어떤 도형이 나올까?라고 선생님이 말씀하셔서 직접 프로그래밍을 통해 어떤 도형이 나오는지를 관찰해보겠습니다. 대충 이런식으로 간단하게 .. 더보기
IA-32 opcode map-1 일단 지금 하고 있는것이 기계어-> 어셈블리어로 변환시키는 방법이므로 intel이 어떻게 기계어 구조를 만들었는지를 알기 위해서 Intel에서 제공해준 공식 메뉴얼을 봐봤습니다. 이 메뉴얼은 intel공식 홈페이지를 가서 메뉴얼 다운로드를 하면 나옵니다. 먼저 인텔 기계어의 가장 기본적인 구조입니다.1)Instruction Prefixes: 1바이트로 Opcode를 보조하는 역할을 합니다.(선택적: 없어도 됨)2) Opcode : 1,2,3 바이트로 어떤 명령어인지를 알려줍니다.3) ModR/M : 1바이트로 각각의 bit가 Mod, Reg/Opcode,R/M으로 되있으며 Opcode가 원하는 그 어셈블리어에서 명령어 뒤에 나오는 값이 라고 생각하면 됩니다.(선택적)4) SIB : 1바이트로 각각의 bi.. 더보기
EP찾기 RAW=RVA-VA+PointerToRawData라는것을 이용해서EP의 RVA를 OptionalHeader구조체서 참조해오고,VA와PointerToRawData를 code부분의 Sectionheader구조체서 참조해오고,그것을 계산시킨값을 code라는부분에 저장시켜봤습니다.일단 이상태는 기계어(어셈블리어가 아님)일테니까 실험적으로 20바이트만 출력해보도록 해봤습니다. 그러니 이렇게 기계어가 막 튀어나오는데 실제 이 기계어는 올리디버거의 Opcode와 똑같습니다. 다음번에는 이제 IA-32의 instruction과 함께 이 기계어로부터 어셈블리어로 변환시키는 작업을 해보겠습니다. 더보기
디스어셈블러 원리 파악 리버싱 관련 블로그들을 찾아봐도 디버거를 만드는 방법을 알려주는 분들이 없어서 어떻게 만들까 고민을 하고 있었는데 이번에 PE구조 관련 글을 쓰기 위해 여러 프로그램을 분석, PE구조를 찾아보니까 PE구조의 Section에서 code부분의 기계어와 올리디버거로 돌렸을때의 기계어코드가 일치한다는 것을 찾았습니다.현재 API를 열심히 공부하고 있으니 이 프로젝트는 아마 내년 여름방학쯤에 디버거를 만드는것으로 목표를 잡고 있습니다. 더보기