본문 바로가기

공부/콤퓨타

(47)
Packing and UnPacking 공부자료 정리 Packing and UnPacking Packing = 프로그램 보호 목적, 악성코드 악용 UnPacking = 프로그램 보호 해제, Find OEP 오늘 확인할 예제 대표적인 MUP = UPX, ASPack 맛보기 = VMProtect 샘플 예제: sol.exe EP = 00005F85 sol_upx.exe EP = 00011DC0 * tip: Packing 특징 All intermodular calls 에서 API 정보가 없음 초기 코드 중 특정 API 가 안보임 kernel32.GetModuleHandleA UPX 는 MUP 중에 가장 유명하니 외워 버리자 ;; 코드의 끝부분 파일명_upx.주소 OEP = 01005F85 (반가운 kernel32.GetModuleHandleA) * ..
malware(fping.exe) Malware 간단 분석 fping.exe (unpacking) 사전 준비: IDA, OllyDbg 패킹 유/무 확인툴은 PEiD or Stud_PE * PEiD 는 0.95 버전에서 멈춤 Stud_PE 는 계속 업데이트 중 (최근 악성코드 패킹 여부는 둘다 못잡는건 매한가지;;) 프로그램 메인함수: C, C++, Delphi => WinMain() or main() Visual Basic => TurnRTMain() IDA 로 메인함수 확인 WinMain() = 00401050 OllyDbg 00401050 start CALL GetFileAttributesA() -> 파라미터로 지정한 파일의 속성 정보를 얻어오는 역할 (파일 유/무 체크) 스택 정보: 0012F3B0 0040509C \FileName..
악성 도메인 구별법 "악성코드 분석가의 비법서 스터디" 책에서 간추린 내용 1. 진짜 도메인과의 유사성 체크 ex) kakao.com ->kaka0.com 2. 말도 안되는 도메인 (DGA, Domain Generation Algorithm - 도메인 생성 알고리즘) ex) hmhxnupkc.mooo.com (Kraken DGA) 3. 생성된지 얼마 안된 도메인 이거나 몇 주전에 만료된 도메인 ex) 합볍적인 도메인은 오래되었거나 만료되기 전에 갱신 4. 도메인 등록자 정보가 없거나 이상한 내용으로 등록되었을 경우 ex) name: geddong2 5. 도메인명에 대한 검색 엔진 결과가 악성으로 확인될때 6. 도메인이 RBLs 에 존재하거나 자동 스캐닝 엔진에 탐지된 이력이 있을때 ex) RBLs: Real-time Blo..
IDA + OllyDbg IDA 그리고 OllyDbg 아이다, 그리고 올리디버거 간만에 들어보는 단어다 기억이 가물가물해지는걸 방지하기 위해 공부방에 기록을 남긴다 IDA 기억나는대로 Microsoft Symbol Server 체크를 해야되는 이유: MS 디테일한 정보 획득을 위해 (함수, 이름 등) Space key 적극 활용 IDA 는 수정 전용, Olly와 연계를 잘 하자 등등 지뢰찾기로 winmine.exe 테스트 코드패치를 통한 지뢰찾기 !! 초기 동적분석으로 정보 획득 IDA Function name 을 통해 함수정보 유추 GameOver(), ShowBombs(), DoHelp() 등등 * 육안상 게임 종료, 폭탄그림, 도움말 함수로 추정 가능 WinGraph32 - Xrefs from 기능을 통해 실행되는 연관 함..
Cheat Engine Cheat Engine 몇년만에 치트엔진을 열어봤다 기억이 새록새록 올리디버거 지원되지 않은 가상메모리 변경을 해주는 대표적인 툴로 기억하고 있다 치트엔진을 핀볼게임으로 살펴보면, 메모리를 수정하고자 하는 프로세스의 핸들값을 얻는게 첫째 user 영역 메모리 범위 (00000000 ~ 7FFFFFFF) 점수 데이터가 저장된 메모리 주소 찾는게 관건 -> 점수 데이터 정보를 가지고 메모리 스캔 (value 값 등록) Address 2개 확인 007F4ED2 value 값 수정 (게임 실행 완료) * Frozen: 고정 (ex. 게임에서 에너지 부분 고정) 온라인게임은 메모리 방지 기능에 신경을 쓰고있다 (엔프로텍트, 핵쉴드 등) 온라인게임은 경험아닌 경험을 바탕으로 면역력이 증가된 반면, 일반 비주류 프로..
abex 3rd crackme abex 3rd crackme CreateFile function? (https://msdn.microsoft.com/en-us/library/windows/desktop/aa363858(v=vs.85).aspx) Atttibutes : 생성하는 파일의 속성을 결정 ATTRIBUTE = NORMAL * 악성코드를 보면 HIDDEN 이 자주 확인된다 (FILE_ATTRIBUTE_HIDDEN) Access : 권한 부분 GENERIC_READ GENERIC_READ : 파일 읽기 GENERIC_WRITE : 파일 생성 GENERIC_READ | WRITE : 읽기/쓰기 동시 부여 FileName : 대상 파일 이름, 경로 abex.l2c HANDLE WINAPI CreateFile( _In_ LPCTSTR ..
abex 1st crackme abex 1st crackme MessageBox function? (https://msdn.microsoft.com/en-us/library/windows/desktop/ms645505(v=vs.85).aspx) int WINAPI MessageBox( _In_opt_ HWND hWnd, _In_opt_ LPCTSTR lpText, _In_opt_ LPCTSTR lpCaption, _In_ UINT uType ); GetDriveType function? (https://msdn.microsoft.com/en-us/library/windows/desktop/aa364939(v=vs.85).aspx) UINT WINAPI GetDriveType( _In_opt_ LPCTSTR lpRootPathName ..