• 用MFC打造你的的移位密码解密器


    这是上年写的,直接开给大家了,大家一起学习分享吧~~~~~~
    先看看效果


    这个在简单的ctf中还是很有用的,http://blog.csdn.net/u012763794/article/details/50132513,我在这里用了好几次了

    一切都是从简单做起的吧,不写简单的工具怎么写高大上的工具呢。


    1.需要的基础


    C++基础,MFC的基本编程

    2.开发环境


    vc++6.0,当然vs的各大版本和最新版也是没问题的

    3.新建个工程



    选择基本对话框就可以了



    4.设计界面


    新建个对话框


    最重要的id一定要命名好,最后就只是后面不同,就1-26啦


    跟着给解密按钮添加响应函数就可以啦

    5.解密代码编写


    下面的是解密按钮的响应函数
    void CMoveDecryptDlg::OnButtonDecrypt() 
    {
    	// TODO: Add your control notification handler code here
    	char szWord[100];
    	GetDlgItem(IDC_EDIT_WORD)->GetWindowText(szWord, 100);	//获取输入框的字符串
    	Decrypt(szWord);//调用解密函数
    }

    真正的解密代码
    VOID CMoveDecryptDlg::Decrypt(char *szWord)
    {
    	CString str;
    	int id;
    	for (int j = 1; j <= 25; j++)//1-25次移位
    	{
    		id = GetId(j-1);
    		for (int i = 0; i < strlen(szWord); i++)//根据字符串长度,依次移位,只处理大小写字母
    		{
    			if (szWord[i]>='a'&&szWord[i]<='z')//如果是小写字母
    			{
    				szWord[i] = (szWord[i] - 'a' + 1) % 26 +'a'; //szWord[i] - 'a'就是距离a的距离,+1就是每次循环移动一位,当然还要在26的范围内,最后还要加上a的ASCII码97,因为与a的距离再加97才能获得其最终的ASCII码
    			}else if (szWord[i]>='A'&&szWord[i]<='Z')//如果是大写字母
    			{
    				szWord[i] = (szWord[i] - 'A' + 1) % 26 +'A';//道理跟上面一样
    			}
    		}
    		str.Format("%s",szWord);		//获取字符串并转化成Cstring
    		GetDlgItem(id)->SetWindowText(str);	//放到对应的ID的框里
    	}	
    }



    GetId代码(就是获取下面25个框的id)
    int CMoveDecryptDlg::GetId(int num)
    {
    	const DWORD MyIdcGroup[] = {
    		IDC_EDIT_DECRYPT1,
    		IDC_EDIT_DECRYPT2,
    		IDC_EDIT_DECRYPT3,
    		IDC_EDIT_DECRYPT4,
    		IDC_EDIT_DECRYPT5,
    		IDC_EDIT_DECRYPT6,
    		IDC_EDIT_DECRYPT7,
    		IDC_EDIT_DECRYPT8,
    		IDC_EDIT_DECRYPT9,
    		IDC_EDIT_DECRYPT10,
    		IDC_EDIT_DECRYPT11,
    		IDC_EDIT_DECRYPT12,
    		IDC_EDIT_DECRYPT13,
    		IDC_EDIT_DECRYPT14,
    		IDC_EDIT_DECRYPT15,
    		IDC_EDIT_DECRYPT16,
    		IDC_EDIT_DECRYPT17,
    		IDC_EDIT_DECRYPT18,
    		IDC_EDIT_DECRYPT19,
    		IDC_EDIT_DECRYPT20,
    		IDC_EDIT_DECRYPT21,
    		IDC_EDIT_DECRYPT22,
    		IDC_EDIT_DECRYPT23,
    		IDC_EDIT_DECRYPT24,
    		IDC_EDIT_DECRYPT25,
    	};
    	return MyIdcGroup[num];
    }


  • 相关阅读:
    左耳听风-ARTS-第4周(2019/4/21-2019/4/27)
    Java集合总结
    Zuul网关总结
    左耳听风-ARTS-第3周(2019/4/7-2019/4/13)
    左耳听风-ARTS-第2周(2019/3/31-2019/4/6)
    Java泛型相关总结(下)
    左耳听风-ARTS-第1周
    去长江边走走,看看
    第1记
    c#发送邮件
  • 原文地址:https://www.cnblogs.com/cnsec/p/13286542.html
Copyright © 2020-2023  润新知