#name: win xp sp2 PEB ISbeingdebugged shellcode
#Author: Anonymous
#Date: 14.12.2009.
here is the ASM code made using masm32
if program is being run under debugger the shellcode wil start beeping :D
//////////////////////begin///////////////////////////////////////
.386
.model flat, stdcall
option casemap :none
INCLUDE C:\MASM32\INCLUDE\WINDOWS.INC
INCLUDE C:\MASM32\INCLUDE\KERNEL32.INC
INCLUDE C:\MASM32\INCLUDE\USER32.INC
INCLUDE C:\MASM32\INCLUDE\MASM32.INC
INCLUDELIB C:\MASM32\LIB\KERNEL32.LIB
INCLUDELIB C:\MASM32\LIB\USER32.LIB
INCLUDELIB C:\MASM32\LIB\MASM32.LIB
.data
ExitMsg DB "Enter to Exit", 0
.code
start:
assume fs:nothing
mov eax,fs:[30h]
mov eax, [eax+02h]
mov ebx, 7FFF8000h
add ebx,7FFF8000h
inc ebx
push 300h
push 200h
mov edx,7c837a8fh
cmp eax,ebx
jnz exit
call edx
exit:
invoke ExitProcess,NULL
end start
/////////////////////////////end///////////////////////////////
here is the dump of code using olly debugger
00401000 >/$ 64:A1 30000000 MOV EAX,DWORD PTR FS:[30]
00401006 |. 8B40 02 MOV EAX,DWORD PTR DS:[EAX+2]
00401009 |. BB 0080FF7F MOV EBX,7FFF8000
0040100E |. 81C3 0080FF7F ADD EBX,7FFF8000
00401014 |. 43 INC EBX
00401015 |. 68 00030000 PUSH 300 ; /Duration = 768. ms
0040101A |. 68 00020000 PUSH 200 ; |Frequency = 200 (512.)
0040101F |. BA 8F7A837C MOV EDX,kernel32.Beep ; |
00401024 |. 3BC3 CMP EAX,EBX ; |
00401026 |. 75 02 JNZ SHORT antidebu.0040102A ; |
00401028 |. FFD2 CALL EDX ; \Beep
0040102A |> 6A 00 PUSH 0 ; /ExitCode = 0
0040102C \. E8 01000000 CALL <JMP.&kernel32.ExitProcess> ; \ExitProcess
00401031 CC INT3
00401032 .-FF25 00204000 JMP DWORD PTR DS:[<&kernel32.ExitProcess>; kernel32.ExitProcess
here is the shellcode
\x64\xA1\x30\x00\x00\x00\x8B\x40\x02\xBB\x00\x80\xFF\x7F\x81\xC3\x00\x80\xFF\x7F\x43\x68\x00\x03\x00\x00\x68\x00\x02\x00\x00\xBA\x8F\x7A\x83\x7C\x3B\xC3\x75\x02\xFF\xD2\x6A\x00\xE8\x01\x00\x00\x00\xCC\xFF\x25\x00\x20\x40\x00