Thinking about preventing anti-phase engineering of Visual Basic. NET or C # code

Source: Internet
Author: User
Visual

Developers who use Vs.net are trying to find a way to prevent or prevent others from using their own code to prevent others from understanding their business processes or the implementation process of some important algorithms.
One of the most familiar is the vs.net on the Dotfuscator Community Edition tools, here is no longer introduced this tool, interested can go to http://thesource.ofallevil.com/china/ Msdn/library/langtool/vcsharp/misnetcodeobfuscation.mspx?mfr=true look, the most important thing is to adopt a mechanism of fuzzy processing and element renaming. But this approach is far from the goal of hiding our algorithms.


1public void Undo () {
2 if (this.numofmoves > 0) {
3 This.numofmoves =
4 this.numofmoves-1;
5 if (this._usermoves.length >= 2)
6 this._usermoves =
7 this._usermoves.substring (0, this._usermoves.length-2);
8 This.loadboard (
9 This.movehistory[this.numofmoves-
Ten THIS.NUMOFMOVES/50 * 50]);
One this.drawboard (this.gr);
12}
13}
14
15
16public void C () {
if (this.p > 0) {
THIS.P = this.p-1;
if (this.r.length >= 2)
THIS.R = this.r.substring (0, this.r.length-2);
THIS.A (THIS.Q[THIS.P-THIS.P/50 * 50]);
THIS.A (THIS.E);
23}
24}
25

What is the difference between the two methods?

There is also a tool xenocode the Enterprise, this tool is good, unfortunately, all the function names and namespace names are encrypted, in use when the use of


1class Program
2 {
3 public static void Main ()
4 {
5//loading assembly, test.exe to the confused assembly file name.
6 Assembly asm = Assembly.LoadFrom (@ "Test.exe");
7
8//Get Xenocode Insert decryption type (including its namespace), corresponding to the previous string of the class name, each confusing result may be different.
9 Type type = ASM. GetType ("x293b01486f981425.x1110bdd110cdcea4");
10
11//String parameters and decryption parameters
object[] Parameters = {"\udbac\ue2b7\ue9bb\uf0af\uf7b8\ufeb3\u05a8\u0c61", 0x555ddb55};
type[] Paramtypes = new type[parameters. Length];
for (int i = 0; i < parameters. Length; i++)
Paramtypes[i] = parameters[i]. GetType ();
16
17//Call decryption method
BindingFlags flags = BindingFlags.Public | bindingflags.static;
MethodInfo method = Type. GetMethod ("_D574BB1A8F3E9CBC", flags, NULL, paramtypes, NULL);
Object result = method. Invoke (null, parameters);
21st
22//Show decryption results
Console.WriteLine (result);
24
Console.WriteLine ("Press Enter key to exit");
Console.ReadLine ();
27}
28}
29

Don't know if this is protecting our assemblies or are we messing with our developers?

There are other software that is also trying to find ways to protect our assemblies, VS. NET has been out so long, there is no ideal tool out, I would like to know the way to protect our assembly?



Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.