कई उपकरण हैं, जो कई महान उत्तरों द्वारा उल्लिखित हैं, मैं एक को चुनने जा रहा हूं।
संसाधन हैकर
मैंने [एंगसज]: रिसोर्स हैकर से नवीनतम संस्करण ( 5.1.7 ) डाउनलोड किया । सभी आवश्यक जानकारी उस पृष्ठ (कमांड लाइन विकल्प, स्क्रिप्ट, ...) पर पाई जा सकती है। निम्नलिखित वॉकथ्रू में मैं 2 निष्पादनयोग्य (लैब चूहों) पर काम करने जा रहा हूं, जो (स्पष्ट कारणों के लिए) मैंने अपने cwd में कॉपी किया है :
- ResourceHacker.exe : मैंने सोचा कि यह अपने आप संचालित करना दिलचस्प होगा
- cmake.exe : कोई संस्करण जानकारी सेट के साथ यादृच्छिक निष्पादन योग्य ( मेरी मशीन पर v3.6.3 स्थापना का हिस्सा )
आगे जाने से पहले, मैं यह उल्लेख करना चाहता हूं कि रिसोर्सहैकर के पास एक अजीब टर्मिनल आउटपुट है , और निम्नलिखित कॉपी / पेस्ट टुकड़े थोड़ा भ्रम पैदा कर सकते हैं।
1. सेटअप
यह एक प्रारंभिक कदम की तरह है, पर्यावरण से परिचित होने के लिए, यह दिखाने के लिए कि कोई फंकी बिजनेस नहीं चल रहा है, ...
e:\Work\Dev\StackOverflow\q000284258> sopr.bat
*** Set shorter prompt to better fit when pasted in StackOverflow (or other) pages ***
[prompt]> dir
Volume in drive E is Work
Volume Serial Number is 3655-6FED
Directory of e:\Work\Dev\StackOverflow\q000284258
2019-01-28 20:09 <DIR> .
2019-01-28 20:09 <DIR> ..
2016-11-03 09:17 5,413,376 cmake.exe
2019-01-03 02:06 5,479,424 ResourceHacker.exe
2019-01-28 20:30 496 ResourceHacker.ini
3 File(s) 10,893,296 bytes
2 Dir(s) 103,723,261,952 bytes free
[prompt]> set PATH=%PATH%;c:\Install\x64\CMake\CMake\3.6.3\bin
[prompt]> .\cmake --help >nul 2>&1
[prompt]> echo %errorlevel%
0
[prompt]> .\ResourceHacker.exe -help
[prompt]>
==================================
Resource Hacker Command Line Help:
==================================
-help : displays these abbreviated help instructions.
-help commandline : displays help for single commandline instructions
-help script : displays help for script file instructions.
[prompt]> echo %errorlevel%
0
जैसा कि देखा गया है, निष्पादन योग्य ठीक हैं, वे ठीक चलते हैं, और यहां बताया गया है कि उनका विवरण (जिस पर हम ध्यान रखते हैं) जैसे दिखते हैं:
2. संसाधन
संसाधन फाइलें पाठ फाइलें होती हैं जिनमें संसाधन होते हैं। एक संसाधन (सरलीकृत) है:
अधिक जानकारी के लिए [MS.Docs] की जाँच करें : संसाधन फ़ाइलों के बारे में । कई उपकरण (मौजूदा उत्तरों में उल्लिखित) हैं जो संसाधन फ़ाइल संपादन की सुविधा देते हैं जैसे:
- VStudio एक नया प्रोजेक्ट शुरू करते समय एक डिफ़ॉल्ट बनाता है
- कोई भी ऐसी फ़ाइल मैन्युअल रूप से बना सकता है
लेकिन, चूंकि यह रिसोर्स हैकर , और:
- यह मौजूदा निष्पादन योग्य संसाधनों को निकालने में सक्षम है
- इसमें संसाधन निहित हैं (जैसा कि पिछली तस्वीर में दिखाया गया है)
मैं इस कदम के लिए इसका इस्तेमाल करने जा रहा हूँ ( -action extract
)
अगला, एक संसाधन के लिए .exe ( .dll , ...) में एम्बेडेड होने के लिए इसे बाइनरी फॉर्म में संकलित किया जाना चाहिए , जो पीई प्रारूप में फिट बैठता है । फिर से, बहुत सारे उपकरण हैं जो इसे प्राप्त कर सकते हैं, लेकिन जैसा कि आपने शायद अनुमान लगाया था कि मैं संसाधन हैकर ( -action compile
) से चिपके रहने वाला हूं ।
[prompt]> :: Extract the resources into a file
[prompt]> .\ResourceHacker.exe -open .\ResourceHacker.exe -save .\sample.rc -action extract -mask VersionInfo,, -log con
[prompt]>
[28 Jan 2019, 20:58:03]
Current Directory:
e:\Work\Dev\StackOverflow\q000284258
Commandline:
.\ResourceHacker.exe -open .\ResourceHacker.exe -save .\sample.rc -action extract -mask VersionInfo,, -log con
Open : e:\Work\Dev\StackOverflow\q000284258\ResourceHacker.exe
Save : e:\Work\Dev\StackOverflow\q000284258\sample.rc
Success!
[prompt]> :: Modify the resource file and set our own values
[prompt]>
[prompt]> :: Compile the resource file
[prompt]> .\ResourceHacker.exe -open .\sample.rc -save .\sample.res -action compile -log con
[prompt]>
[28 Jan 2019, 20:59:51]
Current Directory:
e:\Work\Dev\StackOverflow\q000284258
Commandline:
.\ResourceHacker.exe -open .\sample.rc -save .\sample.res -action compile -log con
Open : e:\Work\Dev\StackOverflow\q000284258\sample.rc
Save : e:\Work\Dev\StackOverflow\q000284258\sample.res
Compiling: e:\Work\Dev\StackOverflow\q000284258\sample.rc
Success!
[prompt]> dir /b
cmake.exe
ResourceHacker.exe
ResourceHacker.ini
sample.rc
sample.res
आपके मामले में संसाधन फ़ाइल को सहेजना और संपादित करना आवश्यक नहीं होगा, क्योंकि फ़ाइल पहले से ही मौजूद होगी, मैंने इसे बस उद्देश्यों को प्रदर्शित करने के लिए किया था। नीचे यह संशोधित होने के बाद संसाधन फ़ाइल है (और इस तरह संकलित होने से पहले)।
नमूना :
1 VERSIONINFO
FILEVERSION 3,1,4,1592
PRODUCTVERSION 2,7,1,8
FILEOS 0x4
FILETYPE 0x1
{
BLOCK "StringFileInfo"
{
BLOCK "040904E4"
{
VALUE "CompanyName", "Cristi Fati\0"
VALUE "FileDescription", "20190128 - SO q000284258 demo\0"
VALUE "FileVersion", "3.1.4.1592\0"
VALUE "ProductName", "Colonel Panic\0"
VALUE "InternalName", "100\0"
VALUE "LegalCopyright", "(c) Cristi Fati 1999-2999\0"
VALUE "OriginalFilename", "ResHack\0"
VALUE "ProductVersion", "2.7.1.8\0"
}
}
BLOCK "VarFileInfo"
{
VALUE "Translation", 0x0409 0x04E4
}
}
3. एंबेड
यह रिसोर्स हैकर ( -action addoverwrite
) द्वारा भी प्रदर्शित किया जाएगा । चूंकि .exe पहले से ही कॉपी किया हुआ है इसलिए मैं उनके संसाधनों को संपादित करने जा रहा हूं।
[prompt]> .\ResourceHacker.exe -open .\cmake.exe -save .\cmake.exe -res .\sample.res -action addoverwrite -mask VersionInfo,, -log con
[prompt]>
[28 Jan 2019, 21:17:19]
Current Directory:
e:\Work\Dev\StackOverflow\q000284258
Commandline:
.\ResourceHacker.exe -open .\cmake.exe -save .\cmake.exe -res .\sample.res -action addoverwrite -mask VersionInfo,, -log con
Open : e:\Work\Dev\StackOverflow\q000284258\cmake.exe
Save : e:\Work\Dev\StackOverflow\q000284258\cmake.exe
Resource: e:\Work\Dev\StackOverflow\q000284258\sample.res
Added: VERSIONINFO,1,1033
Success!
[prompt]> copy ResourceHacker.exe ResourceHackerTemp.exe
1 file(s) copied.
[prompt]> .\ResourceHackerTemp.exe -open .\ResourceHacker.exe -save .\ResourceHacker.exe -res .\sample.res -action addoverwrite -mask VersionInfo,, -log con
[prompt]>
[28 Jan 2019, 21:19:29]
Current Directory:
e:\Work\Dev\StackOverflow\q000284258
Commandline:
.\ResourceHackerTemp.exe -open .\ResourceHacker.exe -save .\ResourceHacker.exe -res .\sample.res -action addoverwrite -mask VersionInfo,, -log con
Open : e:\Work\Dev\StackOverflow\q000284258\ResourceHacker.exe
Save : e:\Work\Dev\StackOverflow\q000284258\ResourceHacker.exe
Resource: e:\Work\Dev\StackOverflow\q000284258\sample.res
Modified: VERSIONINFO,1,1033
Success!
[prompt]> del /f /q ResourceHackerTemp.*
[prompt]> dir
Volume in drive E is Work
Volume Serial Number is 3655-6FED
Directory of e:\Work\Dev\StackOverflow\q000284258
2019-01-28 21:20 <DIR> .
2019-01-28 21:20 <DIR> ..
2016-11-03 09:17 5,414,400 cmake.exe
2019-01-03 02:06 5,479,424 ResourceHacker.exe
2019-01-28 21:17 551 ResourceHacker.ini
2019-01-28 20:05 1,156 sample.rc
2019-01-28 20:59 792 sample.res
5 File(s) 10,896,323 bytes
2 Dir(s) 103,723,253,760 bytes free
के रूप में देखा है, मैं दा थोड़ा चाल (पड़ा gainarie ) के रूप में मैं नहीं (कम से कम मुझे नहीं लगता कि मैं कर सकते हैं) कर सकते हैं संशोधित .exe उपयोग में है।
4. परीक्षण
यह एक वैकल्पिक चरण है, यह सुनिश्चित करने के लिए:
- निष्पादनयोग्य अभी भी काम करते हैं (वे प्रक्रिया में गड़बड़ नहीं थे)
- संसाधनों को जोड़ा / अद्यतन किया गया है
[prompt]> .\cmake --help >nul 2>&1
[prompt]> echo %errorlevel%
0
[prompt]> .\ResourceHacker.exe -help
[prompt]>
==================================
Resource Hacker Command Line Help:
==================================
-help : displays these abbreviated help instructions.
-help commandline : displays help for single commandline instructions
-help script : displays help for script file instructions.
[prompt]> echo %errorlevel%
0
और उनका विवरण :
UpdateResource
समारोह में, अगर मौजूदा संस्करण में कार्य अद्यतन संस्करण