ايران ويج

نسخه‌ی کامل: تغییر نام exe در رم
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
با سلام
دوستان میشه بگید کار زیر به چه صورت در دلفی انجام می شود؟

فکر کنید یک برنامه نوشتید اید بعد اون اجراء می کنید بعد از اجراء برنامه میره داخل رم، حال ما اگه بخواهی اسم فایل اگزه که داخل رم هست عوض کنیم به چه صورت میشه؟؟؟

البته اگه PID فایل اگزه در رم که بشه تغییر داد که خیلی عالی میشه؟؟

با تشکر فراوان. Rolleyes
دسترسی به این اطلاعات خارج از محدوده هست و این اجازه به شما داده نمیشه که pid رو بخواهید عوض کنید ولی میتونین اسم مازولهای لود شده رو تغییر بدید
PID رو سیستم عامل انتخاب میکنه البته میشه عوض کرد من قبلا این کار رو انجام داده بودم.
الان خیلی وقته کد نمیزنم ولی یادمه که این کار رو انجام داده بودم
(۱۹-بهمن-۱۳۹۳, ۱۶:۱۲:۰۳)veyskarami نوشته است: [ -> ]PID رو سیستم عامل انتخاب میکنه البته میشه عوض کرد من قبلا این کار رو انجام داده بودم.
الان خیلی وقته کد نمیزنم ولی یادمه که این کار رو انجام داده بودم

سلام
اگر امکان دارد میتونید بیشتر توضیح بدید؟
دوستان میتونید لطف کنید بگید کد زیر چه کاری انجام میده؟؟؟؟

کد:
Procedure FuncNewEntry;
begin
  asm
  PUSH $9E71C8 //the new asm code you want to add.
  end;
end;

Function ChangeEntry(PID:Cardinal;TargetOffest:DWORD;FuncProcedure:Pointer):Pointer;
var
  lpNumberOfBytesWritten:ULONG_PTR;
begin
  PID := OpenProcess(PROCESS_ALL_ACCESS, False, PID);
  Win32Check(WriteProcessMemory(PID, Pointer(TargetOffest), FuncProcedure, sizeof(@FuncProcedure), lpNumberOfBytesWritten));
  CloseHandle(pid);
end;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  PPID:Cardinal;
begin
  GetWindowThreadProcessId(FindWindow(nil,PChar('Test')), @PPid);
  ChangeEntry(PPid,$00741FA5,@FuncNewEntry);
end;