具体的选项设置与说明如下:
#/OPT:WIN98选项,设置文件对齐为0x1000,
# 但对于大文件,则不一定处理!(不确定性,由链接器自行决定)
#/MERGE:.rdata=.text选项,是将.rdata节合并到.text节
为了测试,写了个小汇编,代码: 继续阅读“两个链接选项:对齐设置与PE节合并”
我喜欢这样自由的随手涂鸦,因为我喜欢风……
一些心得与经验,虽然我也不怎么会,
具体的选项设置与说明如下:
#/OPT:WIN98选项,设置文件对齐为0x1000,
# 但对于大文件,则不一定处理!(不确定性,由链接器自行决定)
#/MERGE:.rdata=.text选项,是将.rdata节合并到.text节
为了测试,写了个小汇编,代码: 继续阅读“两个链接选项:对齐设置与PE节合并”
一个有效的PE文件,总是以一个DOS头结构开始的。
这个DOS头结构就是IMAGE_DOS_HEADER,具体定义见winnt.h文件,这里给复制了过来,如下: 继续阅读“PE文件格式学习与总结(待续)”
本想熟悉一下TreeView控件的使用,于是找了个资源列表作为为对象!
让一个程序的资源列表显示到TreeView控制是做到了,接着又想实用些,也来显示一下资源内容!
花了一天的时间翻阅MSDN和调试,终于实现了菜单的查看,哈!
高兴啊!如图: 继续阅读“一个小小的精神胜利:TreeView控件实现资源列表”
要点:
1、如何定义我们自己的函数?
2、函数重载与函数模板
3、一个特殊的函数:递归函数
一、如何定义我们自己的函数
一个完整的函数定义如下:
函数返回值类型 函数名(参数列表……){
[函数体]
} 继续阅读“C++学习第5-7讲 函数及一些相关的知识点[讲义]”
好久没弄了,只是实验一下,呵呵!
所涉及的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来取得字符串的长度,却不想昨天也在这个上面犯了点粘错误!
原来,对于字符串中含有字节为“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 ========是,就只好直接退出了!
要点:
1、条件分支
2、循环
3、嵌套运用
一、条件分支
if语句:
if(条件)
do something;
[else [if(条件)
do something;]
do something;
1、将以前的一个字符串变形函数,结合变形MD5,对注册进行验证!
2、为了防止爆破,将所有的代码都放到动态申请的内存里运行,同时对原代码进行简单的加密,呵呵!
以上两点依然保留,但同时在进行关键比较时:
1、进行两次查表计算后再对比
2、在对比完成后,重新对母表排序! 继续阅读“CrackMe之十的加强与优化”
1、将以前的一个字符串变形函数,结合变形MD5,对注册进行验证!
2、为了防止爆破,将所有的代码都放到动态申请的内存里运行,同时对原代码进行简单的加密,呵呵!
源码与分析先不放出来,等过阵子再放出吧,呵呵!
CM运行如图: 继续阅读“09年写的第一个小程序:CrackMe之十”