一个小小的精神胜利:TreeView控件实现资源列表

本想熟悉一下TreeView控件的使用,于是找了个资源列表作为为对象!
让一个程序的资源列表显示到TreeView控制是做到了,接着又想实用些,也来显示一下资源内容!
花了一天的时间翻阅MSDN和调试,终于实现了菜单的查看,哈!

高兴啊!如图: 继续阅读“一个小小的精神胜利:TreeView控件实现资源列表”

一个简单的弹出菜单的创建

好久没弄了,只是实验一下,呵呵!
所涉及的API,就是一个TrackPopupMenu或者TrackPopupMenuEx!
原型如下:
BOOL TrackPopupMenu(
    HMENU hMenu,  //指向弹出菜单的句柄
    UINT uFlags,  //设置的标志位,用于指示弹出菜单的样式,如文字对齐方式
    int x,
    int y,    //弹出菜单的左上角位置
    int nReserved,
    HWND hWnd,    //接收弹出菜单消息的窗口
    HWND prcRect  //忽略
); 继续阅读“一个简单的弹出菜单的创建”

一个简单的系统托盘图标的实现

很久没有弄这个了,差点了,见朋友的博客有个Delphi版的,于是自己也想弄一个VC的出来!
要实现系统托盘图标,关键在于一个系统函数和一个数据结构。
函数就是Shell_NotifyIcon,原型如下:
BOOL Shell_NotifyIcon(DWORD dwMessage,NOTIFYICONDATA  lpdata);

而数据结构就是NOTIFYICONDATA了,呵呵,具体如下: 继续阅读“一个简单的系统托盘图标的实现”

我犯的一个小错误,呵呵(关于strlen的运用)

习惯性的用strlen来取得字符串的长度,却不想昨天也在这个上面犯了点粘错误!
原来,对于字符串中含有字节为“0”的话,获取的将是错误的,因为strlen的处理是:
碰到0字节时将直接返回,而不考虑后面是否有值,如下:


00407818    |.  8B41 FC          |mov eax,dword ptr ds:[ecx-4]========取字符
0040781B    |.  84C0             |test al,al                               ========判断是否为0了
0040781D    |.  74 32            |je short test.00407851          ========是,就只好直接退出了!

继续阅读“我犯的一个小错误,呵呵(关于strlen的运用)”

CrackMe之十的加强与优化

1、将以前的一个字符串变形函数,结合变形MD5,对注册进行验证!
2、为了防止爆破,将所有的代码都放到动态申请的内存里运行,同时对原代码进行简单的加密,呵呵!

以上两点依然保留,但同时在进行关键比较时:
1、进行两次查表计算后再对比
2、在对比完成后,重新对母表排序! 继续阅读“CrackMe之十的加强与优化”