-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathReadMe.txt
239 lines (137 loc) · 6.36 KB
/
ReadMe.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
//////////////////////////////////////////////////////////////////////
-- I G N I T I O N --
Version 1.3
(30. Jan. 2001)
Copyright (C) 2000, 2001 Bruno 'Beosil' Heidelberger
///////////////////////////////////////////////// Table of Contents //
1 License
2 Introduction
2.1 What is Ignition?
2.2 Functioning
2.3 Current Features
2.4 Website
2.5 Author
3 Package Overview
3.1 Directory Structure
3.2 Special/Important Files
4 Installation
4.1 Installation
4.2 Configuration
5 History/Bugs/Feedback
5.1 History
5.2 Current Bugs
5.3 Feedback
/////////////////////////////////////////////////////// License (1) //
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
////////////////////////////////////////////////// Introduction (2) //
2.1 What is Ignition?
Ignition is an educational tool demonstrating how somebody could
potentially manipulate applications in memory at runtime.
2.2 Functioning
Ignition executes the following steps when started:
1) Ignition reads the configuration file
2) The target application is searched
3) A checksum/length test is done to identify the matching patch
4) The target application is executed
5) The patch is applied to the running target application
6) Modules (plugins) are loaded and initialized
2.3 Current Features
- runs on all Windows platforms (Win9x/NT/2000).
- target application can be specified via commandline, path or
registry-entry.
- a checksum/length test identifies and chooses the correct patch
for different versions of a target application.
- special features can be added with plugins
2.4 Website
The official website can be found at: http://www.beosil.com
2.5 Author
Bruno 'Beosil' Heidelberger ([email protected])
////////////////////////////////////////////// Package Overview (3) //
3.1 Directory Structure
- Ignition : root directory of Ignition
- Source : source (VC6 workspace)
- Ignition : source-code of the executable
- Dll : source-code of the DLL
Note: The actual content of your package depends on the type of
release. If you miss the source or any other part mentioned
in this document, visit the official website at:
http://www.beosil.com
3.2 Special/Important Files
- Ignition/Ignition.cfg
This is the configuration file for Ignition. See
"4.2 Configuration" for details.
- Ignition/License.txt
This file describes the license for Ignition. Read it carefully!
////////////////////////////////////////////////// Installation (4) //
4.1 Installation
The installation of Ignition is straightforward: Unpack the whole
zip-file to your "Program Files" directory.
4.2 Configuration
All information about the target application is stored in the
configuration file of Ignition (Ignition.cfg). This file contains two
parts: The first part defines the location of the target application
and a list of plugins to load. The second part is a list of
memory-patches for the target application.
Lines starting with a # are comment lines.
A target application location can be defined in three different
ways:
- !commandline
The commandline parameter of Ignition is an absolute or
relative path to the target file.
Example: !commandline
- !file <filename>
<filename> is an absolute or relative path to the target file.
Example: !file "C:\Foo\app.exe"
- !registry <key> <value> <add-on>
The path to the target file is <add-on> appended to the value
stored in <value> under <key> in the registry.
Example: !registry "Software\Foo\1.0" "InstallPath" "app.exe"
It is possible to have several target locations specified. The first
match (existing file) will be used in this case.
Modules (plugins) are special dynamic loaded libraries (.dll) that
are loaded into the address-space of the target application and
initialized there. Such modules are included like this:
!module <filename>
Example: !module "foobar.dll"
For every version of the target application there should be a
memory patch line defined like this:
<name> <checksum> <length> : <address> = <byte> ... <byte> , ...
- <name> is the name/description of the specific version.
- <checksum> is the CRC32 checksum of the target file in hex.
- <length> is the length of the target file in hex.
- <address> is the virtual address of a memory patch element.
- <byte> ... <byte> is a list of bytes in hex that are written
to the specified <address>.
Example: "app.exe" a1b2c3d4 1a00 : 401022 = 1f 2e , 4013ae = ff
///////////////////////////////////////// History/Bugs/Feedback (5) //
5.1 History
Version 1.3 (30. Jan. 2001)
- Added more detailed error-messages.
Version 1.2 (22. Dec. 2000)
- Added plugin functionality.
- "Smoother" shutdown of target application after a patch error.
- Fixed a bug that prevented "empty" patch lines.
Version 1.1 (20. Jun. 2000)
- Fixed a timing problem with CreateProcess().
- MFC libraries are now statically linked. This should solve the
incompatibility issues with older MFC42.dll libraries (aka.
"missing ordinal" bug).
Version 1.0 (14. Jun. 2000)
- Initial release.
5.2 Current Bugs
No known bugs right now. ;)
5.3 Feedback
If you find any bugs or have suggestions or questions, just drop a
mail to [email protected]. Do *NOT* ask me questions about specific
configuration files, I will ignore them.
//////////////////////////////////////////////////////////////////////