[Reversing] Formbook Visual Basic 외형 참조> https://jeongzzang.com/152> https://blog.vincss.net/2020/05/re014-guloader-antivm-techniques.html> https://medium.com/m4n0w4r/quick-analysis-note-about-guloader-or-cloudeye-6d4408cca61 ZwQueryVirtualMemory() 이용하여 가상환경관련 문자열이 메모리에 있으면 그 문자열을 해시 계산한 후 일치하면 종료한다. 다음으로는 EAX에 1 넣고 CPUID 어셈명령 호출하고 ECX에 31번째 비트 1인지 확인한다. 즉, EAX에 값은 넣고 CPUID을 호출하면 EAX 값에 따라 정보가 E..
[Reversing] Python Reverse a String 참조> http://spellbackwards.com/> https://www.educative.io/edpresso/how-do-you-reverse-a-string-in-python 분석을 하다 보면 보기 어렵게 된 문자열을 확인할 수 있다.문자열을 Reverse 하는 Python Code 이다.매번 찾기 귀찮아서 정리해둔다.>>> with open('rawdata', 'r') as read_file, open('reverse', 'w') as write_file:>>> read_file = read_file.read()>>> stringlength=len(read_file)>>> slicedstring=read_file[stringle..
[Reversing] Python zlib unpacking 참조> https://stackabuse.com/python-zlib-library-tutorial/> https://docs.python.org/3/library/zlib.html Python zlib는 참조 링크를 통하여 알 수 있다.HwpScan2 도구는 한글(HWP) 문서 파일의 취약점 및 파일 구조에 대해 분석 정보를 확인할 수 있다.하지만 해당 도구는 주기적으로 재설치가 필요하며 가끔 오류가 발생하는 거 같다.해당 도구의 하나의 기능인 zlib decompress 관련해서 Python을 이용하여 제작하였다.>>> import zlib>>> obj1 = open('[.eps_file]', 'rb').read()>>> obj2 = zli..
[Reversing] Pe-sieve 도구 by Hasherezade 트위터를 보다가 PE-sieve 업데이트 소식을 듣고 잘 사용하면 편리하기에 해당 도구에 대해 작성한다.PE-sieve는 실행중인 프로세스를 추출하는 것으로 악성 행위를 주입한 프로세스를 .exe 파일로 만들어주는 도구이다. 악성 행위라면 여러 인젝션이 될 수도 있으며 Process Hollowing 등을 말한다.해당 도구 사용법은 간단하며 자세한 내용은 구글링이나 https://github.com/hasherezade/pe-sieve 참고하면 될 것 같다. 모든 악성 파일에 적용이 가능하지는 않지만 최근 자주 유포되는 이력서로 위장한 Makop 랜섬웨어인 악성파일로 설명해보겠다. 먼저 (그림 1)을 보게 되면 해당 Makpo 악성파일..
[Reversing] DLL의 EAT에서 API 주소 얻기 1. AddressOfNames()을 이용하여 원하는 함수의 이름을 찾은 후, 함수 이름을 비교하여 인덱스를 구한다.2. AddressOfNameOrdinals()을 이용하여 ordinal 배열에서 인덱스 값을 찾는다.3. AddressOfFunction()을 이용하여 EAT에서 ordinal 값을 찾아 함수의 시작 주소를 가져온다. 출처 : x64dbg 디버거를 활용한 리버싱과 시스템 해킹의 원리 간략하게 풀어서 말하면 EAT kernel32 API loading 절차EXPORT Table 주소 > IMAGE_EXPORT_DIRECTORY 시작 주소 + 20 > EXPORT Name Pointer Table RVA 시작 주소 > 필요 API 함..
[Reversing] Wscript & VBA Tip 난독화를 일일이 해제하기에는 시간이 너무 많이 걸리며 쉽지 않은 작업이다. 난독화를 MsgBox를 띄어 복호화된 실행 코드를 확인 할 수 있는 내용을 정리한다. VBA 난독화 > MsgBox 난독화 된 매크로 VBA 코드이다. MsgBox "" & 매개변수 명령어를 추가하여 복호화된 VBA 코드를 확인 할 수 있다. Debug.Print 직접실행 예시) cdevfrqweasdzxc(20) = Smoking("D;]]xjoepxt]]Tztobujwf]]wcpyusbz/fyf") cdevfrqweasdzxc(20) = Smoking("D;]]xjoepxt]]Tztobujwf]]WCpyDpouspm/fyf") Dim TYUIOPGHJJKL As Intege..
[Reversing] ZwContinue 언패킹 시 ZwContinue()을 자주 보게 되어 살펴보았다.먼저 ZwContinue()의 정보를 확인 할 수 있다.ZwContinue( IN PCONTEXT ContextRecord, //Pointer to CONTEXT structure for current thread IN BOOLEAN TestAlert ); 첫번째 인자의 CONTEXT구조체 포인터로 아래와 같은 구조체 정보를 확인 할 수 있다. typedef struct _CONTEXT { DWORD ContextFlags; DWORD Dr0; DWORD Dr1; DWORD Dr2; DWORD Dr3; DWORD Dr6; DWORD Dr7; FLOATING_SAVE_AREA FloatSave; DWOR..
[Reversing] DLL Injection - 샘플 파일 다운로드> 첨부파일 Dll 인젝션은 대상 프로세스가 스스로 LoadLibrary() 함수를 호출하게 만들어서 원하는 DLL을 로드하게 하는 것으로 먼저 LoadLibrary()는 GetModuleHandle()을 이용하여 kernel32.dll을 넣어 핸들을 구하고 GetProcAddress()을 이용하여 얻은 핸들과 "LoadLibrary" 문자열을 넣어서 함수 주소를 찾는다이후 CreateRemoteThread() 함수를 이용하여 원래 목표인 스레드를 생성하는 것이 아니고 LoadLibrary() 함수를 실행시켜 함수의 인자에 인젝션을 원하는 dll 파일의 경로를 적어 로드하는 것이다.. CreateRemoteThread() API을 이용한..
- Total
- Today