无壳简单小程序
****## 目标
请制作一个注册机,不限制语言
## 已知信息
### 当以下条件都满足时:
1.User Name为 *KeyGen*
2.系统日期为 *11* 日
3.系统时间为 *20* 时
4.注册码明文内容包含字符串 *CrackMe* 且在注册码末尾
### 注册码为
*MTFLZXlHZW4yMENyYWNrTWU=*
## 运行截图:
下载:(解压缩密码:52pojie)
用户名:killerzeno
时间:12日7点
结尾:CrackMe
密文结构:12killerzeno7CrackMe
Base64加密获得Key:MTJraWxsZXJ6ZW5vN0NyYWNrTWU=
由于早上要出门上班,来不及做KeyGen。先这样吧~~~
0019F11C 0B856420ASCII "1234567890"
0019F120 0BAAD320ASCII "MTJraWxsZXJ6ZW5vN0NyYWNrTWU="
0019F124 0B98AFB0
0019F128 0BAAD258
0019F12C 0BAC37C0ASCII "12killerzeno7CrackMe"
0019F130 0B856420ASCII "1234567890"
0019F134 0BA956A8ASCII "CrackMe"
int day = DateTime.Now.Day;
int hour = DateTime.Now.Hour;
string code = $"{day}{skinTextBox1.Text.Trim()}{hour}CrackMe";
TextBox2.Text = Convert.ToBase64String(Encoding.Default.GetBytes(code));
断点到Message,后面找到对应的判断程序位置,修改
本帖最后由 JuncoJet 于 2024-6-12 13:50 编辑
给出一个万能码,用户名空
MTIxM0NyYWNrTWU= #include <stdio.h>
#include <windows.h>
char buf;
int main(int argc, char *argv[]){
STARTUPINFO si = {0};
PROCESS_INFORMATION pi = {0};
CreateProcess(NULL, "crackme.exe", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
printf("pid %08x, hProc %08x\n",pi.dwProcessId,pi.hProcess);
LPVOID lp=0;
DWORD r;
//0040F73968 00 00 02 00 E8 03 00 00 00 CC
char patch[]="\x68\x00\x00\x02\x00\xE8\x03\x00\x00\x00\xCC";
WriteProcessMemory(pi.hProcess,0x40F739,patch,sizeof(patch)-1,&r);
for(;;){
Sleep(200);
ReadProcessMemory(pi.hProcess,0x20000,buf,sizeof(buf),&r);
if(buf||!r){
puts(buf);
break;
}
}
CloseHandle(pi.hProcess);
system("pause");
}
实现了一个更优雅的算法,XP-WIN7通用
WIN10未测 这是母机吗? 这个是原始机么?
页:
[1]
2