Friday, January 4, 2019

안티 디버깅과 안티 리버싱에 대한 정보

2018-12-19 

TLS Callback 함수 

     (TLS : Thread Load Storage­)

   :  TLS초기화 코드 실행 기획


[ 안티디버깅 소스 ]



[ Immunity Debugger로 읽을수 없음 /디버깅이 불가능함 ]

따라서, 우회하기
->PEView로 읽어보기



[ PEView ]
Image Base + TLS Table(RVA) = TLS Table이 있는 주소(VA)



[ callback의 주소확인(00402198)과 비슷한곳 확인 ]



[ Immunity debugger ]
디버깅 옵션을 변경



[ data값은 ???.. 주소로 검색,  00401000으로 읽기 ]



[ 메인함수이동구간 수정해서 우회 ]
함수시작하는 부분 찾아가서 main함수부분을 binary->fill with nops



[ 우회성공 ]



Packer : Installer(실행압축)

[game.exe+game.inf+knife+dll]--[압축]--->[압축파일+압축해제코드+설치코드]=setup.exe

   ; 실행파일이 스스로 실행파일의 압축을 풀고 실행 //소프트웨어 배포
   ; packer종류 -UPX, ASPack, Armandilo

   환경 : upx-3.95-win32



[ 압축 ]



[ PEiD - 압축한 파일을 읽을 수 있음 ]




[ 위의 소스코드를 리버싱해서 packer인지 확인해보기]
Realese-upx, packer -> Immunity debugger로 리버싱해보기



[ UPX0 , UPX1 ]
압축한 파일을 푸는 코드
=>이게 확인되면 unpacking 하면 됨
(MUP: Manual Unpacking)



[ PUSHAD ]
 모든 Register를 차례대로 Stack에 PUSH (==PUSH ALL)
<-> POPAD : 차례대로 Stack에서 POP(꺼내오기)



00407000 : UPX1의 시작주소 : ESI
00401000 : UPX0의 시작주소 : EDI



[ ADC(ADD CARRY) ]
덧셈이지만 음수값이 나올수 있다라는 의미 ex.(-1)+(-1)=-2



Protector

(실행파일을 만들어 Protector을 돌리면 코드가 뒤죽박죽)

  • 코드난독화, 코드 암호화, 안티 디버깅
  • 종류: ASProtect, Themida


  • 코드난독화 

        "문자열"-->분리저장+실행직전에결합=>실행


[ 소스설정 ]

5. 취업관련
1)ComputerForensics -AnalogForensics
:법->침해사고분석(침해대응팀*CERT)
2)문서보안(DLP,DRM)



No comments:

Post a Comment

List

MobSF

MobSF는 오픈소스 모바일 앱 자동 보안 진단 프레임워크로 자동 분석 시스템 구축할 때 사용한다. 정정 및 동적 분석이 가능하며, Android, iOS, Windows에 대해 침투 테스트, 멀웨어 분석 및 보안 평가를 할 수 있다. 참고자료 필...