Skip to content

Commit 05d1c85

Browse files
committed
Create README.md
1 parent 3a3c2f7 commit 05d1c85

1 file changed

Lines changed: 53 additions & 0 deletions

File tree

README.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
CodeInject
2+
==========
3+
4+
CodeInject - Code Inject and Runtime Intelligence
5+
6+
CInject (or CodeInject) allows code injection into any managed assembly without disassembling and recompiling it. It eases the inevitable task of injecting any code in single or multiple methods in one or many assemblies to intercept code for almost any purpose.
7+
8+
When using CInject, you do not require any knowledge of the target application. You can create your own injectors very easily and inject them in any target assembly/executable. An example is provided with this application. If you have an existing code which has no logging or no diagnostics, inject it with CInject and execute it as usual to generate log files. **Helps you analyze any code and ease your reverse engineering exercise.**
9+
10+
Provides **runtime intelligence** such as
11+
12+
- Values of arguments to the called function
13+
- Object life time of a method / variables called within the method
14+
- Allows customization of logging or diagnostics
15+
- Allows extension of injectors to tailor your own solution as the need be
16+
- Measure the method execution time to check performance
17+
18+
Build your own **plugins** using CInject information
19+
20+
* CInject supports building your own plugins
21+
* The plugin receives information from the application such as
22+
* Target assembly & method
23+
* Injector assembly & method
24+
* Processing details, results with timestamp
25+
* Exceptions and errors
26+
* Customized Plugin menu in CInject application
27+
28+
## FAQ
29+
30+
**Can I use it in my organization?**
31+
Yes, you can use it.
32+
33+
**I have some doubts, how can I ask?**
34+
Please use the 'Issues' tab
35+
36+
**Do I get to know the value of arguments at runtime?**
37+
Yes, that's the actual beauty of CInject. It lets you know the value of arguments to a function at runtime.
38+
39+
**Can I inject static methods?**
40+
Yes. In the current release, you can call create a class that implements ICInject interface and call static methods. In later release, provision for calling static methods directly will be added as well.
41+
42+
**What version of .NET is this built on? Can I use it with other versions?**
43+
CInject is built on .NET 4.0 runtime. To use it with other versions, rebuild the Injectors, or create your own using .NET 2.0, 3.0, 3.5.
44+
45+
**How do I distribute my plugin?**
46+
You have many alternatives to distribute the plugin
47+
48+
- Host the source code on CodePlex and link it with this project
49+
- Provide the source code, and get it hosted on this webpage & www.ganshani.com website
50+
- Host the source code on GitHub, or other repository websites and provide us the link for promotion purposes
51+
52+
**How about code injection at compile time?**
53+
If you are looking at dynamic injection based on the code you have written in an assembly, it would be worth while trying dI.Hook You can define the injections (or called hooks) in configuration file and invoke them wherever required.

0 commit comments

Comments
 (0)