PDA

View Full Version : تغییر Version Info فایل Exe



Delphi-Man
سه شنبه 09 تیر 1388, 16:10 عصر
با سلام
چطوری میشه اطلاعات ورژن از جمله comment و product version و اینها رو در یه فایل exe خارجی تغییر داد؟

sobhangh
سه شنبه 09 تیر 1388, 17:19 عصر
از منوی Project میری Option و توی سربرگ Version infoمیشه این کارها را کرد. البته داخل برنامه.

Delphi-Man
سه شنبه 09 تیر 1388, 17:22 عصر
از منوی Project میری Option و توی سربرگ Version infoمیشه این کارها را کرد. البته داخل برنامه.
ممنون ولی من که گفتم exe خارجی

Delphi-Man
چهارشنبه 10 تیر 1388, 18:37 عصر
پس هیچکی جواب نمیده؟ خیلی ضروریه کمک کنید.

سعید صابری
چهارشنبه 10 تیر 1388, 19:39 عصر
منظورت از خارجي چيه؟

Delphi-Man
چهارشنبه 10 تیر 1388, 23:56 عصر
دوستان منظورم اینه که یه برنامه با دلفی می نویسیم که خودش بتونه Version info یه فایل exe دیگه رو تغییر بده. در ضمن هر دو فایل exe (چه خود برنامه چه exe ای که قراره version info عوض بشه) با دلفی نوشته شده. مثلا نرم افزار multimedia builder وقتی که می خواد پروژه رو کامپایل کنه قبلش بهتون اجازه میده version info مثل product name و product version و ... رو تغییر بدین.

Delphi-Man
شنبه 13 تیر 1388, 11:54 صبح
دو روز گذشته هنوز کسی جواب نداده :عصبانی++:

Felony
شنبه 13 تیر 1388, 20:22 عصر
مثلا نرم افزار multimedia builder وقتی که می خواد پروژه رو کامپایل کنه قبلش بهتون اجازه میده version info مثل product name و product version و ... رو تغییر بدین.
خودتون دارین میگین قبل از کامپایل ، البته بیلدر کامپایلر نداره و مفسر هست .
فکر کنم اگر بیت به بیت فایل رو بخونید بتونید بیت های ورژن رو پیدا کنید و تعویض کنید .

Delphi-Man
شنبه 13 تیر 1388, 23:07 عصر
خودتون دارین میگین قبل از کامپایل ، البته بیلدر کامپایلر نداره و مفسر هست .
فکر کنم اگر بیت به بیت فایل رو بخونید بتونید بیت های ورژن رو پیدا کنید و تعویض کنید .
دقیقا. این رو هم میدونم که کامپایل نمیکنه. فقط مطمئن نیستم که نیازی به پیدا کردن header نباشه. اگه اینطوری نباشه خیلی خوب میشه. وگرنه مجبورم تا فایل دوم رو به طور کامل کارمو روش تموم کردم ببینم رو کدوم بایت اطلاعات ورژن رو نگه میداره.

shahzade_33
دوشنبه 24 تیر 1392, 14:36 عصر
دوست عزیز با برنامه ResHacker.exe میتونی ورژن فایل اجرایی تغییر بدی

lord_viper
سه شنبه 25 تیر 1392, 09:55 صبح
این اطلاعات در ریسورس ذخیره میشن
کد زیر فکر کنم مفید باشه



Sz := GetLen;
GetMem(Data, Sz);
try
GetData(Data, Sz);
HFile := BeginUpdateResource(PChar(FileName), false);
if HFile = 0 then
RaiseLastWin32Error;
DoDiscard := true;
try
if not UpdateResource(HFile, RT_VERSION, PChar(1), 0, Data, Sz) then
RaiseLastWin32Error;
DoDiscard := false;
finally
if not EndUpdateResource(HFile, DoDiscard) then
RaiseLastWin32Error;
end;
finally
FreeMem(Data);
end;


مثال دیگر

procedure clone(sFile,output:string);
var
dwHandle, cbTranslate: cardinal;
sizeVers: DWord;
lpData, langData: Pointer;
lpTranslate: ^LANGANDCODEPAGE;
hRes : THandle;
begin
sizeVers := GetFileVersionInfoSize(PChar(sFile), dwHandle);
If sizeVers = 0 then
exit;
GetMem(lpData, sizeVers);
try
ZeroMemory(lpData, sizeVers);
GetFileVersionInfo (PChar(sFile), 0, sizeVers, lpData);
If not VerQueryValue (lpData, '\VarFileInfo\Translation', langData, cbTranslate) then
exit;
hRes := BeginUpdateResource(pchar(output), FALSE);
//For i := 0 to (cbTranslate div sizeof(LANGANDCODEPAGE)) do
//begin
lpTranslate := Pointer(Integer(langData) + sizeof(LANGANDCODEPAGE));
UpdateResource(hRes, RT_VERSION, MAKEINTRESOURCE(VS_VERSION_INFO), lpTranslate^.wLanguage,lpData, sizeVers);
//end;
EndUpdateResource(hRes, FALSE);
finally
FreeMem(lpData);
end;
end;

shobair
چهارشنبه 26 تیر 1392, 10:02 صبح
با سلام
چطوری میشه اطلاعات ورژن از جمله comment و product version و اینها رو در یه فایل exe خارجی تغییر داد؟

سلام

نرم افزاری هست به نام Resource Hacker که میشه باهاش این چیزها رو عوض کرد. اگه برنامه با دلفی نوشته شده باشه که تقریباً همه کار میشه کرد، حتی میشه جای رویداد های یک فرم رو عوض کرد یا حذفشون کرد.

شبیر