using Microsoft.VisualBasic;
using Microsoft.VisualBasic.CompilerServices;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Runtime.CompilerServices;
using System.Text;
using System.Windows.Forms;
namespace crackme2
{
[DesignerGenerated]
public class Form1 : Form
{
private static List<WeakReference> __ENCList = new List<WeakReference>();
private IContainer components;
[AccessedThroughProperty("Button1")]
private Button _Button1;
[AccessedThroughProperty("TextBox1")]
private TextBox _TextBox1;
[AccessedThroughProperty("TextBox2")]
private TextBox _TextBox2;
[AccessedThroughProperty("Label1")]
private Label _Label1;
[AccessedThroughProperty("Label2")]
private Label _Label2;
[DebuggerNonUserCode]
static Form1()
{
}
[DebuggerNonUserCode]
public Form1()
{
Form1.__ENCAddToList((object) this);
this.InitializeComponent();
}
[DebuggerNonUserCode]
private static void __ENCAddToList(object value)
{
lock (Form1.__ENCList)
{
if (Form1.__ENCList.Count == Form1.__ENCList.Capacity)
{
int index1 = 0;
int num = checked (Form1.__ENCList.Count - 1);
int index2 = 0;
while (index2 <= num)
{
if (Form1.__ENCList[index2].IsAlive)
{
if (index2 != index1)
Form1.__ENCList[index1] = Form1.__ENCList[index2];
checked { ++index1; }
}
checked { ++index2; }
}
Form1.__ENCList.RemoveRange(index1, checked (Form1.__ENCList.Count - index1));
Form1.__ENCList.Capacity = Form1.__ENCList.Count;
}
Form1.__ENCList.Add(new WeakReference(RuntimeHelpers.GetObjectValue(value)));
}
}
[DebuggerNonUserCode]
protected override void Dispose(bool disposing)
{
try
{
if (!disposing || this.components == null)
return;
this.components.Dispose();
}
finally
{
base.Dispose(disposing);
}
}
[DebuggerStepThrough]
private void InitializeComponent()
{
this.Button1 = new Button();
this.TextBox1 = new TextBox();
this.TextBox2 = new TextBox();
this.Label1 = new Label();
this.Label2 = new Label();
this.SuspendLayout();
Button button1_1 = this.Button1;
Point point1 = new Point((int) sbyte.MaxValue, 95);
Point point2 = point1;
button1_1.Location = point2;
this.Button1.Name = "Button1";
Button button1_2 = this.Button1;
Size size1 = new Size(130, 38);
Size size2 = size1;
button1_2.Size = size2;
this.Button1.TabIndex = 0;
this.Button1.Text = "Se connecter";
this.Button1.UseVisualStyleBackColor = true;
TextBox textBox1_1 = this.TextBox1;
point1 = new Point((int) sbyte.MaxValue, 28);
Point point3 = point1;
textBox1_1.Location = point3;
this.TextBox1.Name = "TextBox1";
TextBox textBox1_2 = this.TextBox1;
size1 = new Size(223, 20);
Size size3 = size1;
textBox1_2.Size = size3;
this.TextBox1.TabIndex = 1;
TextBox textBox2_1 = this.TextBox2;
point1 = new Point((int) sbyte.MaxValue, 69);
Point point4 = point1;
textBox2_1.Location = point4;
this.TextBox2.Name = "TextBox2";
TextBox textBox2_2 = this.TextBox2;
size1 = new Size(223, 20);
Size size4 = size1;
textBox2_2.Size = size4;
this.TextBox2.TabIndex = 2;
this.Label1.AutoSize = true;
Label label1_1 = this.Label1;
point1 = new Point(27, 31);
Point point5 = point1;
label1_1.Location = point5;
this.Label1.Name = "Label1";
Label label1_2 = this.Label1;
size1 = new Size(87, 13);
Size size5 = size1;
label1_2.Size = size5;
this.Label1.TabIndex = 3;
this.Label1.Text = "Nom d'utilisateur:";
this.Label2.AutoSize = true;
Label label2_1 = this.Label2;
point1 = new Point(27, 72);
Point point6 = point1;
label2_1.Location = point6;
this.Label2.Name = "Label2";
Label label2_2 = this.Label2;
size1 = new Size(74, 13);
Size size6 = size1;
label2_2.Size = size6;
this.Label2.TabIndex = 4;
this.Label2.Text = "Mot de passe:";
this.AutoScaleDimensions = new SizeF(6f, 13f);
this.AutoScaleMode = AutoScaleMode.Font;
size1 = new Size(395, 145);
this.ClientSize = size1;
this.Controls.Add((Control) this.Label2);
this.Controls.Add((Control) this.Label1);
this.Controls.Add((Control) this.TextBox2);
this.Controls.Add((Control) this.TextBox1);
this.Controls.Add((Control) this.Button1);
this.Name = nameof (Form1);
this.Text = "CrackMe";
this.ResumeLayout(false);
this.PerformLayout();
}
internal virtual Button Button1
{
[DebuggerNonUserCode] get => this._Button1;
[DebuggerNonUserCode, MethodImpl(MethodImplOptions.Synchronized)] set
{
EventHandler eventHandler = new EventHandler(this.Button1_Click);
if (this._Button1 != null)
this._Button1.Click -= eventHandler;
this._Button1 = value;
if (this._Button1 == null)
return;
this._Button1.Click += eventHandler;
}
}
internal virtual TextBox TextBox1
{
[DebuggerNonUserCode] get => this._TextBox1;
[DebuggerNonUserCode, MethodImpl(MethodImplOptions.Synchronized)] set => this._TextBox1 = value;
}
internal virtual TextBox TextBox2
{
[DebuggerNonUserCode] get => this._TextBox2;
[DebuggerNonUserCode, MethodImpl(MethodImplOptions.Synchronized)] set => this._TextBox2 = value;
}
internal virtual Label Label1
{
[DebuggerNonUserCode] get => this._Label1;
[DebuggerNonUserCode, MethodImpl(MethodImplOptions.Synchronized)] set => this._Label1 = value;
}
internal virtual Label Label2
{
[DebuggerNonUserCode] get => this._Label2;
[DebuggerNonUserCode, MethodImpl(MethodImplOptions.Synchronized)] set => this._Label2 = value;
}
private void Button1_Click(object sender, EventArgs e)
{
ASCIIEncoding asciiEncoding = new ASCIIEncoding();
asciiEncoding.GetBytes(this.TextBox2.Text);
if (Operators.CompareString(this.TextBox1.Text, "admin", false) == 0)
{
string s = this.ESAB46_Encode(this.TextBox2.Text);
if (Operators.CompareString(Convert.ToBase64String(asciiEncoding.GetBytes(s)), "TG0wVnZUQmQ3bndWdlRCVU15MGl2NEJSOG5OVjZ6NWdNS05rNno1ZzhtVmQ4c2hW", false) == 0)
{
int num1 = (int) Interaction.MsgBox((object) "Vous êtes bien loggué, bienvenue");
}
else
{
int num2 = (int) Interaction.MsgBox((object) "Mauvais mot de passe");
}
}
else
{
int num = (int) Interaction.MsgBox((object) "Utilisateur inconnu !");
}
}
public string ESAB46_Encode(string input)
{
input = Uri.EscapeDataString(input);
string str = "ABCDqrs456tuvNOPwxyz012KLM3789=+QRSTUVWXYZabcdefghijklmnopEFGHIJ/";
StringBuilder stringBuilder = new StringBuilder();
int index1;
do
{
int[] numArray1 = new int[4];
int[] numArray2 = new int[3]{ 0, 0, 0 };
int index2 = 0;
do
{
if (index1 < input.Length)
numArray2[index2] = Strings.Asc(input[index1]);
checked { ++index1; }
checked { ++index2; }
}
while (index2 <= 2);
numArray1[0] = numArray2[0] >> 2;
numArray1[1] = (numArray2[0] & 3) << 4 | numArray2[1] >> 4;
numArray1[2] = (numArray2[1] & 15) << 2 | numArray2[2] >> 6;
numArray1[3] = numArray2[2] & 63;
if (numArray2[1] == 0)
{
numArray1[2] = 64;
numArray1[3] = 64;
}
if (numArray2[2] == 0)
numArray1[3] = 64;
int[] numArray3 = numArray1;
int index3 = 0;
while (index3 < numArray3.Length)
{
int index4 = numArray3[index3];
stringBuilder.Append(str[index4]);
checked { ++index3; }
}
}
while (index1 < input.Length);
return stringBuilder.ToString();
}
public string ESAB46_Decode(string input)
{
string str = "ABCDqrs456tuvNOPwxyz012KLM3789=+QRSTUVWXYZabcdefghijklmnopEFGHIJ/";
StringBuilder stringBuilder = new StringBuilder();
int index1;
do
{
int[] numArray1 = new int[4];
int[] numArray2 = new int[3]{ 0, 0, 0 };
int index2 = 0;
do
{
numArray1[index2] = str.IndexOf(input[index1]);
checked { ++index1; }
checked { ++index2; }
}
while (index2 <= 3);
numArray2[0] = numArray1[0] << 2 | numArray1[1] >> 4;
numArray2[1] = (numArray1[1] & 15) << 4 | numArray1[2] >> 2;
numArray2[2] = (numArray1[2] & 3) << 6 | numArray1[3];
stringBuilder.Append(Strings.Chr(numArray2[0]));
if (numArray1[2] != 64)
stringBuilder.Append(Strings.Chr(numArray2[1]));
if (numArray1[3] != 64)
stringBuilder.Append(Strings.Chr(numArray2[2]));
}
while (index1 < input.Length);
return stringBuilder.ToString();
}
}
}
Write, Run & Share C# code online using OneCompiler's C# online compiler for free. It's one of the robust, feature-rich online compilers for C# language, running on the latest version 8.0. Getting started with the OneCompiler's C# compiler is simple and pretty fast. The editor shows sample boilerplate code when you choose language as C# and start coding.
OneCompiler's C# online compiler supports stdin and users can give inputs to programs using the STDIN textbox under the I/O tab. Following is a sample program which takes name as input and print your name with hello.
using System;
namespace Sample
{
class Test
{
public static void Main(string[] args)
{
string name;
name = Console.ReadLine();
Console.WriteLine("Hello {0} ", name);
}
}
}
C# is a general purpose object-oriented programming language by Microsoft. Though initially it was developed as part of .net but later it was approved by ECMA and ISO standards.
You can use C# to create variety of applications, like web, windows, mobile, console applications and much more using Visual studio.
| Data Type | Description | Range | size |
|---|---|---|---|
| int | To store integers | -2,147,483,648 to 2,147,483,647 | 4 bytes |
| double | to store large floating point numbers with decimals | can store 15 decimal digits | 8 bytes |
| float | to store floating point numbers with decimals | can store upto 7 decimal digits | 4 bytes |
| char | to store single characters | - | 2 bytes |
| string | to stores text | - | 2 bytes per character |
| bool | to stores either true or false | - | 1 bit |
datatype variable-name = value;
When ever you want to perform a set of operations based on a condition or set of few conditions IF-ELSE is used.
if(conditional-expression) {
// code
}
else {
// code
}
You can also use if-else for nested Ifs and If-Else-If ladder when multiple conditions are to be performed on a single variable.
Switch is an alternative to If-Else-If ladder.
switch(conditional-expression) {
case value1:
// code
break; // optional
case value2:
// code
break; // optional
...
default:
// code to be executed when all the above cases are not matched;
}
For loop is used to iterate a set of statements based on a condition.
for(Initialization; Condition; Increment/decrement) {
// code
}
While is also used to iterate a set of statements based on a condition. Usually while is preferred when number of iterations are not known in advance.
while(condition) {
// code
}
Do-while is also used to iterate a set of statements based on a condition. It is mostly used when you need to execute the statements atleast once.
do {
// code
} while (condition);
Array is a collection of similar data which is stored in continuous memory addresses. Array values can be fetched using index. Index starts from 0 to size-1.
data-type[] array-name;
Method is a set of statements which gets executed only when they are called. Call the method name in the main function to execute the method.
static void method-name()
{
// code to be executed
}