728x90
INT3
- 디버거가 실행중인 프로그램에 브레이크 포인트를 거는 역할 (일시적으로 실행중인 프로그램에 bp 거는데 적합)
- 다른 명령어들은 2바이트를 사용하는데 INT3 은 1바이트를 사용해서 명령어 패치하는데 적합함
- opcode: CC
- 소프트웨어 브레이크 포인트로 사용됨
C/C++ 코드
bool IsDebugged()
{
__try
{
__asm int 3;
return true; // debugger detected
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
return false; // no debugger detected
}
}
만약 디버거가 없다면 예외가 발생하고 예외처리를 핸들러가 함
만약 디버거가 있다면 예외를 핸들러가 처리하지 않음
[참고]
https://en.wikipedia.org/wiki/INT_(x86_instruction)
https://anti-debug.checkpoint.com/techniques/assembly.html
https://m.blog.naver.com/stop2y/221218235366
https://stackoverflow.com/questions/61816297/what-is-int-3-really-supposed-to-do
728x90
'study > 보안' 카테고리의 다른 글
Powershell Script 난독화 (3) (0) | 2024.04.29 |
---|---|
랜섬웨어란? (0) | 2024.03.23 |
Windows 7 Ultimate ISO 파일 다운받기 (0) | 2024.02.05 |
버추얼박스에서 윈도우 렉걸릴때 해결방법 & 화면 자동 맞춤 설정 (1) | 2024.02.05 |
웜 악성코드의 이해 (0) | 2024.02.04 |