اخوتي
السلام عليكم ورحمة الله وبركاته
في الحقيقة ارجو ممن لديه اي معلومات عن كيفية برمجة الاسمبلي عن طريق لغة سي بلص بلص ان يتكرم بها علي سواء كتاب او روابط لمواقع
جزاكم الله خيرا
اخوتي
السلام عليكم ورحمة الله وبركاته
في الحقيقة ارجو ممن لديه اي معلومات عن كيفية برمجة الاسمبلي عن طريق لغة سي بلص بلص ان يتكرم بها علي سواء كتاب او روابط لمواقع
جزاكم الله خيرا
===========================
زكاة العلم نشره
المهندس
عدي ياسين
من مواضيعي :
برمجة وتصميم المواقع باستخدام ASp.NET & VB.NET
ASP.NET نقل المعلومات بين صفحات الموقع باستخدام طريقة Server.Transfer
السلام عليكم
السؤال غير واضح اخى عدى, ماذا تقصد ببرمجة الاسمبلى عن طريق السى بلس بلس؟؟
هل تقصد إستخدام inline assembly إذا كان الامر كذلك فما عليك سوى وضع كلمة asm_ قبل وبعد شفرة الاسمبلي حتى يتمكن المترجم من التميز بين شفرة الاسمبلى وشفرة السى او السى بلس بلس..
اما إذا كان الامر غير ذلك فالرجاء التوضيح...
والسلام عليكم
لا إله إلا الله محمد رسول الله
busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.
تقصد شئ كهاذا ؟
اقتباسQnix dev # cat > dsmsg.c#include <stdio.h>
char dsmsg[] = "\xeb\x19\x31\xc0\x31\xdb\x31\xd2\x31\xc9\xb0\x04\xb3\x01\x59\xb2\x05\xcd"\
"\x80\x31\xc0\xb0\x01\x31\xdb\xcd\x80\xe8\xe2\xff\xff\xff\x51\x6e\x69\x78\x0a";
int main(int argc, char **argv)
{
int (*func)();
func = (int (*)()) dsmsg;
(int)(*func)();
}
Qnix dev # gcc dsmsg.c -o dsmsg
Qnix dev # ./dsmsg
Qnix
ال asm كود لل dsmsg[] هو
اقتباسQnix dev # cat dsmsg.asm[sECTION .text]
global _start
_start:
jmp short ender
starter:
xor eax, eax
xor ebx, ebx
xor edx, edx
xor ecx, ecx
mov al, 4
mov bl, 1
pop ecx
mov dl, 5
int 0x80
xor eax, eax
mov al, 1
xor ebx,ebx
int 0x80
ender:
call starter
db 'Qnix',0xa
لتحويله الى shellcode قم بتجميعه
اقتباسQnix dev # nasm -f elf dsmsg.asm -o dsmsg.oQnix dev # ld dsmsg.o -o dsmsgbin
بعدها قم بستعمال objdump لتقوم ب disasm
اقتباسQnix dev # objdump -d dsmsgbindsmsgbin: file format elf32-i386
Disassembly of section .text:
080480a0 <_start>:
80480a0: eb 19 jmp 80480bb <ender>
080480a2 <starter>:
80480a2: 31 c0 xor %eax,%eax
80480a4: 31 db xor %ebx,%ebx
80480a6: 31 d2 xor %edx,%edx
80480a8: 31 c9 xor %ecx,%ecx
80480aa: b0 04 mov $0x4,%al
80480ac: b3 01 mov $0x1,%bl
80480ae: 59 pop %ecx
80480af: b2 05 mov $0x5,%dl
80480b1: cd 80 int $0x80
80480b3: 31 c0 xor %eax,%eax
80480b5: b0 01 mov $0x1,%al
80480b7: 31 db xor %ebx,%ebx
80480b9: cd 80 int $0x80
080480bb <ender>:
80480bb: e8 e2 ff ff ff call 80480a2 <starter>
80480c0: 51 push %ecx
80480c1: 6e outsb %ds:(%esi),(%dx)
80480c2: 69 .byte 0x69
80480c3: 78 0a js 80480cf <ender+0x14>
الان شوف ال bold هي ال bytes الي نحتاجها .. الان لو كنت تبغا تشغل هاذا الملف عن طريق ملف C رتب الشيلكود
ويكون الترتيب بلعكس ...
وفي النهايه راح يصير
char dsmsg[] = "\xeb\x19\x31\xc0\x31\xdb\x31\xd2\x31\xc9\xb0\x04\xb3\x01\x59\xb2\x05\xcd"\ "\x80\x31\xc0\xb0\x01\x31\xdb\xcd\x80\xe8\xe2\xff\xff\xff\x51\x6e\x69\x78\x0a";
هاذا في ليونكس اما في ويندوز نفس الطريقه لكن استعمل ادوات اخرى مثل ollydbg او اي شئ اّخر ...
تم تعديل هذه المشاركة بواسطة Qnix في 8 يناير 2006 في 12:48
اخوتي المحترمين
اقصد انه لغة سي بلص بلص تحتوي على
asm_ لكي تبدا بتقبل لغة الاسمبلي والبرمجة بها .. وارجو ممن لديه ايه معلومات عن كيفية البرمجة بلغة الاسمبلي من داخل لغة سي بلص بلص ان يتحفنا بها وجزاكم الله خيرا
asm_
mov al , dl
الخ .....
===========================
زكاة العلم نشره
المهندس
عدي ياسين
من مواضيعي :
برمجة وتصميم المواقع باستخدام ASp.NET & VB.NET
ASP.NET نقل المعلومات بين صفحات الموقع باستخدام طريقة Server.Transfer
انا مبرمج سي ولا اعرف ماذا يفعل هذا الكود احس انه غامض ؟!!!
{
int (*func)();
func = (int (*)()) dsmsg;
(int)(*func)();
}وش معنى () وداخلها int ونجمة ووش معنى مرة ثانية كتبت الـint بين قوسين هل فيه موضوع يشرح هذا الغموض وبالتفصيل الممل ؟!!
طبعا اعرف وش معنى pointer لكن الكود هذا خلاني اصير غامض فياليت تفهمني وش معناه ووش كل سطر يعني وابي بالتفصيل ؟؟؟
Sub-0 كتب:انا مبرمج سي ولا اعرف ماذا يفعل هذا الكود احس انه غامض ؟!!!{ int (*func)(); func = (int (*)()) dsmsg; (int)(*func)(); }
1 تعرف مؤشر دالة
2 تجعل المتغير السابق يؤشر على الدالة dsmsg
3 تنفذ الدالة
ليس لي في C لأن حبيبي Pascal :lol:
الباسكال مااحبها لغة للتعليم اكثر من انها تستخدم في تطبيقاات عدة لكن Delphi والي تعتبر visual pascal اعتبرها قوية جدا ولغة مصنعة لبرامج في كافة المجالات وخاصة برامج backdoor/trojans
هذا الموضوع مغلق.