Crackme взят с crackmes.de. Уровень сложности Very easy, for newbies Платформа .Net Первые два Paswordа, находятся без особого труда. Вот они: Part1:HgRAhquDd Part2:2147483647 Проблема возникла с написанием кейгена. NetReflector выдал такой код: Code: private void button3_Click(object sender, EventArgs e) { if (!this.textBox3.ReadOnly) { int length = this.textBox3.Text.Length; int num2 = 0; for (int i = 0; i < length; i++) { num2 += this.textBox1.Text[i]; num2 *= i; } num2 /= 2; if (this.textBox4.Text == num2.ToString()) { this.textBox6.ReadOnly = false; } else { MessageBox.Show("Wrong Password!", "Error"); } } } Написал генератор номерков Code: #include <iostream.h> #include <conio.h> #include <string.h> using namespace std; int main() { char *name; char *name2="HgRAhquDd"; long serial, num=0; int i; cout<<"Enter your name:"; cin>> name; int length=strlen(name); for (i=0; i<length; i++) { num+=name2[i]; num*=i; } serial=num/2; cout<< "\n"<< "Serial:"<< serial<<"\n"; cout<< "\n"; cout<< "Press and key to Exit..."; getch(); return 0; } Скомпилил в gcc. Кейген генерит неверные номерки. Подскажите пожалуйста, где я ошибся. Скачать crackme
посмотри внимательнее Code: private void button3_Click(object sender, EventArgs e) { if (!this.textBox3.ReadOnly) { int length = [B]this.textBox3.Text.Length[/B]; int num2 = 0; for (int i = 0; i < length; i++) { num2 += [B]this.textBox1.Text[/B][i]; num2 *= i; } num2 /= 2; if (this.textBox4.Text == num2.ToString()) { this.textBox6.ReadOnly = false; } else { MessageBox.Show("Wrong Password!", "Error"); } } }