1.在区块表(section table)中最后一个IMAGE_SECTION_TABLE后面添加一个IMAGE_SECTION_TABLE
IMAGE_SECTION_TABLE 结构如下
typedef struct _IMAGE_SECTION_HEADER {
BYTE Name[IMAGE_SIZEOF_SHORT_NAME];
union {
DWORD PhysicalAddress;
DWORD VirtualSize;
} Misc;
DWORD VirtualAddress;
DWORD SizeOfRawData;
DWORD PointerToRawData;
DWORD PointerToRelocations;
DWORD PointerToLinenumbers;
WORD NumberOfRelocations;
WORD NumberOfLinenumbers;
DWORD Characteristics;
} IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER;
按照结构添加一个长度为1000h名为.lingdux的区块:
Eztoo AVI Video Converter 是一个功能强大的AVI格式转换工具,可以将MPEG(MPG)、WMV(ASF、ASX)、AVI(DivX、XviD)、VCD格式转换为AVI格式的文件。它使用方便,鼠标点击就可以完成转换,转换速度很快,质量也很好,支持进行批量和自动转换,也可以自己设定相应的参数来输出AVI文件。在它的帮助下,转换工作变得非常轻松。
下载地址:http://www.newhua.com/soft/56777.htm
安装后运行,提示注册,随意输入提示“invalid register code! please retry!”
然后找字符串的调用位置如下:
004B03F6 . 55 push ebp
004B03F7 . 68 FE054B00 push 004B05FE
004B03FC . 64:FF30 push dword ptr fs:[eax]
004B03FF . 64:8920 mov dword ptr fs:[eax], esp
004B0402 . C605 9C7D4B00>mov byte ptr [4B7D9C], 1 ; 全局变量
004B0409 . FF05 987D4B00 inc dword ptr [4B7D98] ; ———-3次输入限制————-
最近在看加密解密,看到了第五章序列号保护方式的crackme,分析了一下。
在输入用户名和序列号的地方随便输入,弹出错误对话框。
用lordPE查看输入表发现user32模块中有GetDlgItemTextA,直接OD加载对其下断,运行回到程序领空:
004012B5 |. 6A 0B |push 0B ; /Count = B (11.)
004012B7 |. 68 8E214000 |push 0040218E ; |Buffer = serial.0040218E
004012BC |. 68 E8030000 |push 3E8 ; |ControlID = 3E8 (1000.)
004012C1 |. FF75 08 |push dword ptr [ebp+8] ; |hWnd
004012C4 |. E8 07020000 |call <jmp.&USER32.GetDlgItemTextA> ; \GetDlgItemTextA 得到用户名
