You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+36-52Lines changed: 36 additions & 52 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,21 +1,19 @@
1
-
# WinDeploy - Windows Dependency DLL Analysis and Deployment Tool
1
+
# WinDeploy - Windows DLL Dependency Analysis and Deployment Tool
2
2
3
-
**[English](README.MD) | [中文](README_CN.MD)**
3
+
## Introduction
4
4
5
-
## Project Introduction
6
-
7
-
WinDeploy is a command-line tool for analyzing the dependency DLLs of Windows executable files (.exe) and optionally copying these DLL files to a specified directory. This tool is particularly useful for the deployment and distribution of Windows applications, helping developers collect all necessary dependency libraries.
5
+
WinDeploy is a command-line tool for analyzing the DLL dependencies of Windows executable files (.exe) and dynamic-link libraries (.dll), with an option to copy these dependent DLL files to a specified directory. This tool is particularly useful for Windows application deployment and distribution, helping developers collect all necessary dependencies.
8
6
9
7
## Features
10
8
11
-
- Analyze PE headers of Windows executable files to extract the list of dependent DLLs
12
-
- Support recursive analysis of all levels of DLL dependencies
13
-
- Support searching for DLL files in multiple locations (executable directory, system directories, PATH environment variables, etc.)
9
+
- Analyze PE headers of Windows executables and DLLs to extract lists of dependent DLLs
10
+
- Support recursive analysis of DLL dependencies at all levels
11
+
- Support searching for DLL files in multiple locations (executable directory, system directories, PATH environment variable, etc.)
14
12
- Support loading additional search directories and ignore lists from files
15
-
-Optionally copy dependent DLLs to a specified directory
16
-
- Automatically identify and skip Windows system core DLLs (such as KERNEL32.dll, USER32.dll, etc.)
17
-
- Support for x64 and x86 architecture PE files
18
-
- Use RAII pattern to manage Windows resources, ensuring proper resource release
13
+
-Option to copy dependent DLLs to a specified directory
14
+
- Automatically identify and skip Windows core DLLs (such as KERNEL32.dll, USER32.dll, etc.)
15
+
- Support both x64 and x86 architecture PE files
16
+
- Use RAII pattern for Windows resource management, ensuring proper resource cleanup
--release [depth] Release mode: recursively analyze dependencies (default depth: 2) and copy to file's directory
134
134
--recursive [depth] Recursively analyze all DLL dependencies (default depth: 20)
135
-
--copy <target_dir> Copy dependency DLLs to the specified directory
136
-
--copy-exe-dir Copy dependency DLLs to the executable's directory
135
+
--copy <dest_dir> Copy dependent DLLs to specified directory
136
+
--copy-exe-dir Copy dependent DLLs to the file's directory
137
137
--copy-all Copy all DLLs (including system core DLLs)
138
138
--search-dirs <file> Load additional search directories from file (one path per line)
139
139
--ignore-dll <file> Load ignore list from file (DLL names, paths, or directories)
140
140
141
141
Examples:
142
142
win_deploy.exe C:\Path\To\YourApp.exe
143
+
win_deploy.exe C:\Path\To\YourLibrary.dll
143
144
win_deploy.exe C:\Path\To\YourApp.exe --release
144
145
win_deploy.exe C:\Path\To\YourApp.exe --release 3
145
146
win_deploy.exe C:\Path\To\YourApp.exe --recursive
@@ -160,20 +161,18 @@ Examples:
160
161
161
162
## How It Works
162
163
163
-
1.**PE File Analysis**: The tool reads the PE header of the executable file, parses the Import Directory and Delay Load Import Directory, and obtains all dependent DLL names.
164
-
165
-
2.**Recursive Analysis**: If recursive mode is enabled, the tool will逐层 analyze the dependencies of each dependent DLL until the maximum recursion depth is reached or all dependencies are analyzed.
166
-
167
-
3.**DLL Search**: Search for DLL files in the following priority order:
164
+
1.**PE File Analysis**: The tool reads the PE header of the executable or DLL, parsing the Import Directory and Delay Import Directory to obtain all dependent DLL names.
165
+
2.**Recursive Analysis**: If recursive mode is enabled, the tool analyzes the dependencies of each dependent DLL level by level until the maximum recursion depth is reached or all dependencies are analyzed.
166
+
3.**DLL Search**: DLL files are searched in the following priority order:
168
167
169
168
-**Additional specified search directories** (specified via `--search-dirs` parameter, highest priority)
170
-
-Executable file directory
169
+
-Directory of the analyzed file
171
170
- Current working directory
172
171
- System directory (System32)
173
172
- Windows directory
174
-
- All directories in the PATH environment variable
173
+
- All directories in PATH environment variable
174
+
4.**File Copying**: If copy options are specified, the tool copies found DLL files to the target directory:
175
175
176
-
4.**File Copying**: If the copy option is specified, the tool will copy the found DLL files to the target directory:
177
176
- Automatically identify and skip Windows system core DLLs (unless using `--copy-all`)
178
177
- Skip DLLs in the ignore list
179
178
- Automatically create target directory
@@ -183,9 +182,9 @@ Examples:
183
182
184
183
- Use Windows API for file operations and PE file parsing
185
184
- Implement RVA (Relative Virtual Address) to file offset conversion
186
-
- Support parsing of regular import tables and delayload import tables
185
+
- Support parsing both regular import tables and delay-load import tables
187
186
- Use RAII pattern to manage Windows handles and memory-mapped views
188
-
- Support detection of various PE file architectures (x64, x86)
187
+
- Support detection of multiple PE file architectures (x64, x86)
189
188
- Include complete error handling and boundary checks
190
189
- Automatically detect system core DLL list, including KERNEL32, USER32, GDI32, ADVAPI32, etc.
191
190
@@ -204,18 +203,3 @@ windeployexe/
204
203
## License
205
204
206
205
MIT
207
-
208
-
## Contributing
209
-
210
-
Bug reports and feature requests are welcome. If you want to contribute code, please ensure:
211
-
212
-
1. Code follows the project's coding style
213
-
2. Add appropriate comments and documentation
214
-
3. Ensure the code compiles and runs correctly on the target platform
215
-
216
-
## Contact
217
-
218
-
For questions or suggestions, please contact through:
0 commit comments