|
楼主 |
发表于 2007 年 4 月 1 日 11:28:37
|
显示全部楼层
打开广告文件的程序段
更改以前:|
:0042AF5B FF152C244D00 Call KERNEL32.CreateFileA ?
文件
:0042AF61 8BF8 mov edi, eax ?
:0042AF63 83FFFF cmp edi, FFFFFFFF ?
句柄(打开失败)
:0042AF66 897D08 mov dword ptr [ebp+08], edi ?
:0042AF69 0F84EB000000 je 0042B05A :0042AF6F 8D45F4 lea eax, dword ptr [ebp-0C]
:0042AF72 50 push eax
:0042AF73 57 push edi
更改以后:
:0042AF5B FF152C244D00 Call KERNEL32.CreateFileA ?
文件
:0042AF61 8BF8 mov edi, eax ?
:0042AF63 83FFFF cmp edi, FFFFFFFF 更改以后:
:00443B56 33FF xor edi, edi
:00443B58 397DDC cmp dword ptr [ebp-24], edi
:00443B5B EB5C jmp 00443BB9 ?
手工更改方法:
查找16进制代码:39 7D DC 75 5C
更改为: EB
文件偏移为43B5Bh
发送消息窗口点击广告的程序段
更改以前:
:00432B4E 50 push eax
:00432B4F FFB660010000 push dword ptr [esi+00000160] ;
esi+160是窗口句柄
:00432B55 FF1578274D00 Call USER32.GetWindowRect
:00432B5B 8D45DC lea eax, dword ptr [ebp-24]
:00432B5E 8BCE mov ecx, esi
:00432B60 50 push eax
:00432B61 E8A6110700 call 004A3D0C
:00432B66 FF7510 push [ebp+10]
:00432B69 8D45DC lea eax, dword ptr [ebp-24]
:00432B6C FF750C push [ebp+0C]
:00432B6F 50 push eax
:00432B70 FF15B8274D00 Call USER32.PtInRect
:00432B76 85C0 test eax, eax ?
区域内点击
:00432B78 0F84FF000000 je 00432C7D
:00432B7E 6A10 push 00000010 ?
:00432B80 FF157C274D00 Call USER32.GetKeyState
:00432B86 33DB xor ebx, ebx
:00432B88 663BC3 cmp ax, bx
:00432B8B 7D0F jge 00432B9C
:00432B8D C705D874510001000000 mov dword ptr [005174D8], 00000001
:00432B97 E9E8000000 jmp 00432C84
更改以后:
:00432B70 FF15B8274D00 Call USER32.PtInRect
:00432B76 85C0 test eax, eax
:00432B78 0F84FF000000 je 00432C7D
:00432B7E 6A10 push 00000010 ?
区域内点击
:00432B80 FF157C274D00 Call USER32.GetKeyState
:00432B86 E9F5EA0900 jmp 004D1680 ?
示程序当中
:00432B8B 7D0F jge 00432B9C
:00432B8D C705D874510001000000 mov dword ptr [005174D8], 00000001
:00432B97 E9E8000000 jmp 00432C84
手工更改方法:
查找16进制代码:33 DB 66 3B C3 7D 0F C7
更改为: E9 F5 EA 09 00
文件偏移为32B86h
回复消息窗口点击广告的程序段
更改以前:
:0046221C FF15B8274D00 Call USER32.PtInRect ?
广告区域内点击
:00462222 85C0 test eax, eax
:00462224 0F84D8000000 je 00462302 ?
更改以后:
:0046221C FF15B8274D00 Call USER32.PtInRect ?
广告区域内点击
:00462222 85C0 test eax, eax
:00462224 E9D9000000 jmp 00462302 ?
手工更改方法:
查找16进制代码:0F 84 D8 00 00 00 8B 46 56
更改为: E9 D9 00 00 00 90
文件偏移为62224h
弹出发送消息窗口之前的对象数据调用的程序段
更改以前:
:0042513D 56 push esi
:0042513E 8BF1 mov esi, ecx
:00425140 FFB6F4000000 push dword ptr [esi+000000F4]
:00425146 FFB6B0000000 push dword ptr [esi+000000B0]
:0042514C E879810300 call 0045D2CA ?
结构首址
:00425151 33C9 xor ecx, ecx
:00425153 3BC1 cmp eax, ecx ?
成功
:00425155 7431 je 00425188 结构首址
:00425151 33C9 xor ecx, ecx
:00425153 3BC1 cmp eax, ecx ?
成功
:00425155 7431 je 00425188 ?
:00425157 E9E4C40A00 jmp 004D1640 ?
IP地址和端口的程序中
:0042515C 90 nop ?
手工更改方法:
查找16进制代码:39 88 DC 01 00 00 75 08
更改为: E9 E4 C4 0A 00 90
文件偏移为25157h
显示IP地址和串口的附加程序
:004D1680 803D00174D003A cmp byte ptr [004D1700], 3A ?
字符内存区第一个字符是不是冒号,是就说明没有IP地址
:004D1687 7509 jne 004D1692 ?
:004D1689 66C70500174D003000 mov word ptr [004D1700], 0030 ?
字符内存区写上一个"0"
:004D1692 6800174D00 push 004D1700 ?
:004D1697 FFB660010000 push dword ptr [esi+00000160] 告窗口的窗口句柄
:004D169D A1E8714A00 mov eax, dword ptr [004A71E8] ?
他地方调用SetWindowTextA的地址
:004D16A2 FF10 call dword ptr [eax] ?
重定位好了的SetWindowTextA的地址
:004D16A4 E9D415F6FF jmp 00432C7D ?
之后
:004D16A9 90 nop ?
对齐好看
:004D16AA 90 nop
:004D16AB 90 nop
:004D16AC 90 nop
:004D16AD 90 nop
:004D16AE 90 nop
:004D16AF 90 nop
wsprintf所用到的模式字符串:
:004D1720 25733A2564 "%s:%d"
手工更改方法:
在文件偏移D1680处添加16进制代码:
80 3D 00 17 4D 00 3A 75-09 66 C7 05 00 17 4D 00
30 00 68 00 17 4D 00 FF-B6 60 01 00 00 A1 E8 71
4A 00 FF 10 E9 D4 15 F6- FF 90 90 90 90 90 90 90
在文件偏移D1720处添加16进制代码:
25 73 3A 25 64
保存IP地址和端口的附加程序
:004D1640 8BDC mov ebx, esp ?
针
:004D1642 BC00194D00 mov esp, 004D1900 ?
针到无用的内存区域
:004D1647 50 push eax ?
寄存器
:004D1648 51 push ecx
:004D1649 52 push edx
:004D164A 56 push esi
:004D164B FFB018020000 push dword ptr [eax+00000218] ?
象端口的地址
:004D1651 FFB014020000 push dword ptr [eax+00000214] P
地址的字符串指针
:004D1657 6820174D00 push 004D1720 ?
是printf的模式字符
:004D165C 6800174D00 push 004D1700 ?
:004D1661 8B3532CE4900 mov esi, dword ptr [0049CE32] 他地方调用wsprintfA的地址
:004D1667 FF16 call dword ptr [esi] ?
重定位好了的wsprintfA的地址
:004D1669 83C410 add esp, 00000010 ?
:004D166C 5E pop esi ?
:004D166D 5A pop edx
:004D166E 59 pop ecx
:004D166F 58 pop eax
:004D1670 3988DC010000 cmp dword ptr [eax+000001DC], ecx ?
原程序00425157处被改掉的有用代码
:004D1676 8BE3 mov esp, ebx ?
针
:004D1678 E9E03AF5FF jmp 0042515D ?
:004D167D 90 nop
:004D167E 90 nop
:004D167F 90 nop
手工更改方法:
在文件偏移D1640处添加16进制代码:
8B DC BC 00 19 4D 00 50-51 52 56 FF B0 18 02 00
00 FF B0 14 02 00 00 68-20 17 4D 00 68 00 17 4D
他地方调用wsprintfA的地址
:004D1667 FF16 call dword ptr [esi] ?
重定位好了的wsprintfA的地址
:004D1669 83C410 add esp, 00000010 ?
:004D166C 5E pop esi ?
:004D166D 5A pop edx
:004D166E 59 pop ecx
:004D166F 58 pop eax
:004D1670 3988DC010000 cmp dword ptr [eax+000001DC], ecx ?
原程序00425157处被改掉的有用代码
:004D1676 8BE3 mov esp, ebx ?
针
:004D1678 E9E03AF5FF jmp 0042515D ?
:004D167D 90 nop
:004D167E 90 nop
:004D167F 90 nop
手工更改方法:
在文件偏移D1640处添加16进制代码:
8B DC BC 00 19 4D 00 50-51 52 56 FF B0 18 02 00
00 FF B0 14 02 00 00 68-20 17 4D 00 68 00 17 4D
消息发送对话框中广告窗口样式的更改
更改以前的窗口样式(style)是50000012h,
WS_CHILDWINDOW|WS_VISIBLE|SS_LEFT|SS_ETCHEDFRAME
更改以后的窗口样式(style)是50000201h,
WS_CHILDWINDOW|WS_VISIBLE|SS_LEFT|SS_CENTER|SS_CENTERIMAGE
手工更改方法:
在文件偏移141EFCh处把
12 00 00 50
改为 02 01 00 50
代码段段属性修改
更改以前的代码段属性为60000020,CER(包含代码,可执行,可读)
更改以后的代码段属性为C0000020,CRW(包含代码,可读写和执行)
手工更改方法:
在文件偏移21Ch处把
20 00 00 60
改为 20 00 00 C0 |
|