|
看了看,有两处地方调用Shell_NotifyIconW的函数,要从这里慢慢跟进,调试很麻烦,改一次要生成一次ISO文件,再在虚拟机测试。。。调试太麻烦了,代码都是写在PECMD。EXE中吧?找不到那个老九PE辅助工具的字符在哪里,郁闷,不知是不是加密了,或分开几处存放了
2.8.3版本
经测试,此方法不可行,请各位不要尝试了
好像是改0x00006C58位置,75改EB,我没有经过测试,那位朋友可以测试下,成功的话将结果告诉我
方法UltraEdit打开PECMD.EXE,CTRL+G,转到0x00006C58,将75改EB即可
Ollydbg方法
0040784E |. FF15 24124000 |CALL NEAR DWORD PTR DS:[<&KERNEL32.GetS>; [GetSystemDefaultLangID 调用API获取系统默认语言
00407854 |. 66:3D 0408 |CMP AX,804 比较默认语言是否为804
00407858 75 1F JNZ SHORT PECMD.00407879 将JNZ改JMP,使无论如何都调用Type TrayIcon MenuTip in here.提示的托盘
0040785A |. 33C0 |XOR EAX,EAX
0040785C |> 66:8B0C85 382>|/MOV CX,WORD PTR DS:[EAX*4+402738]
00407864 |. 66:03C8 ||ADD CX,AX
00407867 |. 66:41 ||INC CX
00407869 |. 66:890C45 E84>||MOV WORD PTR DS:[EAX*2+4140E8],CX
00407871 |. 40 ||INC EAX
00407872 |. 83F8 0B ||CMP EAX,0B
00407875 |.^ 7C E5 |\JL SHORT PECMD.0040785C
00407877 |. EB 18 |JMP SHORT PECMD.00407891
00407879 |> 6A 40 |PUSH 40 ; /Count = 40 (64.) 上面改JMP将会无论如何都直接跳到这里
0040787B |. 68 E8404100 |PUSH PECMD.004140E8 ; |Buffer = PECMD.004140E8
00407880 |. 68 15270000 |PUSH 2715 ; |RsrcID = STRING "Type TrayIcon MenuTip in here."
00407885 |. FF35 94434100 |PUSH DWORD PTR DS:[414394] ; |hInst = NULL
0040788B |. FF15 78134000 |CALL NEAR DWORD PTR DS:[<&USER32.LoadSt>; \LoadStringW
00407891 |> 391D D4404100 |CMP DWORD PTR DS:[4140D4],EBX
00407897 |. 74 10 |JE SHORT PECMD.004078A9
00407899 |> 68 D0404100 |PUSH PECMD.004140D0
0040789E |. 53 |PUSH EBX
0040789F |. FF15 5C124000 |CALL NEAR DWORD PTR DS:[<&SHELL32.Shell>; SHELL32.Shell_NotifyIconW
004078A5 |. 85C0 |TEST EAX,EAX
004078A7 |. 75 3A |JNZ SHORT PECMD.004078E3 如不成功可试下同时改下这里JNZ为JMP
004078A9 |> 55 |PUSH EBP
004078AA |. 68 C8000000 |PUSH 0C8
004078AF |. FFD6 |CALL NEAR ESI
004078B1 |. FF4424 14 |INC DWORD PTR SS:[ESP+14]
004078B5 |. 837C24 14 0A |CMP DWORD PTR SS:[ESP+14],0A
004078BA |.^ 0F82 F2FEFFFF \JB PECMD.004077B2
004078C0 |. EB 21 JMP SHORT PECMD.004078E3
004078C2 |> 391D 70414100 CMP DWORD PTR DS:[414170],EBX
004078C8 74 19 JE SHORT PECMD.004078E3 如不成功可试下同时改下这里JNZ为JMP
004078CA |. 68 D0404100 PUSH PECMD.004140D0
004078CF |. 6A 02 PUSH 2
004078D1 |. FF15 5C124000 CALL NEAR DWORD PTR DS:[<&SHELL32.Shell_>; SHELL32.Shell_NotifyIconW
004078D7 |. 53 PUSH EBX
004078D8 |. E8 19FEFFFF CALL PECMD.004076F6
004078DD |. 59 POP ECX
004078DE |. A3 70414100 MOV DWORD PTR DS:[414170],EAX
004078E3 |> 6A FF PUSH -1
004078E5 |. 6A FF PUSH -1
修改完成右键复制到可执行文件,所有修改,关闭弹出窗口,保存为PECMD.EXE
[ 本帖最后由 风铃夜思雨 于 2007-5-1 03:43 PM 编辑 ] |
|