[Reversing] ROP(Return Oriented Programming)참고> https://github.com/BreakingMalwareResearch/atom-bombing Atombombing 기법을 보다가 정리가 필요하여 일부 정리를 한다. (이해가 되지 않아 잠시 멈춤..)ROP는 Retrun Oriented Programming의 약자로 데이터 실행 방지(Data Execution Prevention, DEP)을 우회하기 위하여 이용된다. 또한, 취약한 프로그램 내부에 있는 기계어 코드들의 섹션(Gadget)을 이용하여 버퍼오버플로우 공격시 특정 명령을 실행시키는 방법이기도하다.ROP의 방법에 대해서는 1.Virtual Protect() 2.할당 등 여러가지 방법이 있으며 해당 POC..
[Reversing] 메모리 생성 방식에 따라 버퍼 기본값 변화 참조> https://www.codeguru.com/cpp/w-p/win32/tutorials/article.php/c9535/Inside-CRT-Debug-Heap-Management.htm CVE-2017-8291 취약점에서의 Postscript aload 연산자를 살펴보던 중 0x020EADBA or 0x0DF0ADBA 같은 값이 있어 찾아본다.메모리 생성 방식에 따라 버퍼의 기본 값이 정해진다.HeapAlloc() 호출 후 메모리를 보면 아래와 같다.ex) 주소 HeapAlloc () 이후 00320FD8 09 00 09 01 00320FDC E8 07 18 00 00320FE0 0D F0 AD BA 00320FE4 0D F0 AD ..
[Malware analysis] 스크린락커(screenlocker), 코로나 바이러스 분석 참조 - 매우 성가신 코로나 바이러스 스크린락커 발견돼 > https://blog.alyac.co.kr/2934?category=750247 - 샘플 파일 다운로드> https://app.any.run/tasks/b4d1365e-c9d0-4857-81f0-beeb633dc94a/ 스크린락커(screenlocker), 코로나 바이러스 wifihacker.exe 실행 시, C:\Program Files\vb\wifi hacker 폴더 내 다수의 파일 생성 확인 파일명 설명 파일명 설명 allwh.reg 악성행위 관련 레지스트리anti.exe PC Locker 해제 관련 파일antiwh.vbs PC 잠금 메시지 스크립..
[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] 알려진 난독화 종류 난독화 TOOL이다. PowerShell의 대표적인 난독화 방식 종류 설명 Random Case 대소문자 변화 (예 : tEsT) Division 문자 분할 (예 : 'te'+'st') Reorder 문자 순서 지정 (예 : '{1}{0}' -f 'te', 'st') Back Ticks Back Tick 문자 추가 (예 : 't'e's't) Call Operator 스크립트 블록 사용 (예 : & (test)) Whitespace 문자 중간에 공백 추가 (예 : 'te' + 'st') Ascii Char Assigns 아스키코드 사용 (예 : [char]116+[char]100) Replace Replace 기능 사용 (예 : 'aesa'.replace('a', ..
- Total
- Today