1、用一个字符数组来存密码
再用一个字符数组接收你的输入,然后用strcmp
来比较,如果返回0则密码是正确的
2、例程:
#include "stdio.h"#include "string.h"
int main()
{
char mima[100]="YuanShi888"
char input[100]={0}
printf("请输入密码:")
gets(input)
含仿岩 if(strcmp(mima,input)==0)
大灶 printf("恭喜你,密码正确!\n")
else
printf("对不起,密码输入错误谈御!\n")
}
VC6 代码#include<windows.h>
#include<stdio.h>
#define SIZE 100
BOOL excude(char *szOutPutBuf,char *szInPutBuf)
{
SECURITY_ATTRIBUTES sa
HANDLE hRead,hWrite
sa.nLength = sizeof(SECURITY_ATTRIBUTES)
sa.lpSecurityDescriptor = NULL
sa.bInheritHandle = TRUE//输出重定向
if (!CreatePipe(&hRead,&hWrite,&sa,0))
{
printf("创建匿名管拦卖道失败")
return FALSE
}
STARTUPINFO si
PROCESS_INFORMATION pi
ZeroMemory(&si,sizeof(STARTUPINFO))
si.cb = sizeof(STARTUPINFO)
si.hStdInput=hRead
si.hStdError = GetStdHandle(STD_ERROR_HANDLE) //把创建进程的标准错误输出重定向到管道输入
si.hStdOutput = hWrite //把创建进程的标准输出重定向到管道输入
si.wShowWindow = SW_HIDE
si.dwFlags =STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW
if (!CreateProcess(NULL, "..\\..\\Debug\\code.exe",NULL,NULL,TRUE,0,NULL,NULL,&si,&pi)) //路径自己设定
{
CloseHandle(hWrite)
CloseHandle(hRead)
printf("创建子进程失败")
return FALSE
}
else
{
CloseHandle(pi.hProcess)
CloseHandle(pi.hThread)
}
DWORD bytesRead
DWORD bytesWrite
if(!WriteFile(hWrite,szInPutBuf,strlen(szInPutBuf),&bytesWrite,NULL))
printf("写入数据失败\n")
Sleep(1000)//等待子进程往管道写入数据,不可以省略
if (!ReadFile(hRead,szOutPutBuf,SIZE,&bytesRead,NULL))
printf("读数据失判御败\n")
CloseHandle(hRead)
return TRUE
}
int main()
{
char pf[]="find the code\r\n"
char output[SIZE],input[SIZE]="123\r\n"//对密码的初始化程序自己设计
memset(output,0,SIZE)
excude(output,input)
if(!strcmp(output,pf))
printf("cracked!\n"掘衡岩)
return 0
}
另外,软件破解不需要这么费力,用OD这些调试一下原来的那个程序分分钟就破解了!!
#include <stdio.h>#include <string.h>
#include <stdlib.h>
#define pi 3.1415926
float area(float s)
void main()
{
char srmima[16],mima[16]="sunshibin1020"
int i=0,j
float r,s
while(1)
{
for(j=0j<30j++)
printf("-")
printf("做谨\n")
printf("请输入密码:")
gets(srmima)
for(j=0j<30j++)
printf("-")
printf("\n")
if(strcmp(srmima,mima)==0)
{
printf("恭喜你悄困,密码正确!\n")
break
}
i++
if(i>2)
{
printf("很遗憾,密码输入错误!\n")
exit(0)
}
}
area(r)
printf("圆面积为:%f",s)
getchar()
}
float area(float r)
{
float s
while(1)
{
printf("\n请输入半径: r:")
scanf("%f",&r)
if (r<0)
break
s=pi*r*r
printf("s=%.2f\启胡念n",s)
}
exit(0)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)