世界之窗论坛's Archiver

ntmywzc 发表于 2009-7-27 11:10

终于找到修改标题栏宽度的入口点了!

用OllyDBG查找二进制“68 C8 00 00 00”,找到最后一个,其代码是“push    0C8”
把后面的“0C8”修改为你要的宽度(HEX),默认是200(DEC),修改为350的HEX是“15E ”。至于其他的数值,自己用计算器换算一下吧!

好心开发者在皮肤的INI参数里面加个Width参数吧!(害我找得那么辛苦!)例如:
[TitleBar]
Width=350
Height=21

下面是OD的所在位置上下文代码:
[code]
004B7910  /$  83EC 44       sub     esp, 44
004B7913  |.  53            push    ebx
004B7914  |.  55            push    ebp
004B7915  |.  56            push    esi
004B7916  |.  8BF1          mov     esi, ecx
004B7918  |.  57            push    edi
004B7919  |.  68 01000080   push    80000001
004B791E  |.  8D9E A44D0000 lea     ebx, dword ptr [esi+4DA4]
004B7924  |.  53            push    ebx
004B7925  |.  68 64924F00   push    004F9264                         ;  UNICODE "SuperTitle"
004B792A  |.  68 E4E74E00   push    004EE7E4                         ;  UNICODE "Wnd"
004B792F  |.  E8 CC53FFFF   call    004ACD00
004B7934  |.  83C4 10       add     esp, 10
004B7937  |.  68 C4BC4F00   push    004FBCC4                         ; /MsgName = "TaskbarCreated"
004B793C  |.  FF15 20A84D00 call    dword ptr [<&USER32.RegisterWind>; \RegisterWindowMessageW
004B7942  |.  8B6C24 58     mov     ebp, dword ptr [esp+58]
004B7946  |.  A3 78C27300   mov     dword ptr [73C278], eax
004B794B  |.  8B4424 5C     mov     eax, dword ptr [esp+5C]
004B794F  |.  55            push    ebp                              ; /<%s>
004B7950  |.  68 28A14E00   push    004EA128                         ; |format = "%s"
004B7955  |.  8D8E F84A0000 lea     ecx, dword ptr [esi+4AF8]        ; |
004B795B  |.  68 04010000   push    104                              ; |count = 104 (260.)
004B7960  |.  51            push    ecx                              ; |wstr
004B7961  |.  C786 C04A0000>mov     dword ptr [esi+4AC0], 1          ; |
004B796B  |.  8986 D04A0000 mov     dword ptr [esi+4AD0], eax        ; |
004B7971  |.  FF15 F8A34D00 call    dword ptr [<&MSVCRT._snwprintf>] ; \_snwprintf
004B7977  |.  8B16          mov     edx, dword ptr [esi]
004B7979  |.  83C4 10       add     esp, 10
004B797C  |.  8BCE          mov     ecx, esi
004B797E  |.  66:C786 FE4C0>mov     word ptr [esi+4CFE], 0
004B7987  |.  FF52 20       call    dword ptr [edx+20]
004B798A  |.  8BCE          mov     ecx, esi
004B798C  |.  E8 CFFBFFFF   call    004B7560
004B7991  |.  8B4424 60     mov     eax, dword ptr [esp+60]
004B7995  |.  85C0          test    eax, eax
004B7997  |.  74 0E         je      short 004B79A7
004B7999  |.  50            push    eax                              ; /pRectSrc
004B799A  |.  8D4424 1C     lea     eax, dword ptr [esp+1C]          ; |
004B799E  |.  50            push    eax                              ; |pRectDst
004B799F  |.  FF15 A4A64D00 call    dword ptr [<&USER32.CopyRect>]   ; \CopyRect
004B79A5  |.  EB 70         jmp     short 004B7A17
004B79A7  |>  8D4C24 18     lea     ecx, dword ptr [esp+18]
004B79AB  |.  6A 00         push    0                                ; /UpdateProfile = 0
004B79AD  |.  51            push    ecx                              ; |pParam
004B79AE  |.  6A 00         push    0                                ; |wParam = 0
004B79B0  |.  6A 30         push    30                               ; |Action = SPI_GETWORKAREA
004B79B2  |.  FF15 B4A64D00 call    dword ptr [<&USER32.SystemParame>; \SystemParametersInfoW
004B79B8  |.  85C0          test    eax, eax
004B79BA  |.  75 12         jnz     short 004B79CE
004B79BC  |.  8D5424 18     lea     edx, dword ptr [esp+18]
004B79C0  |.  52            push    edx                              ; /pRect
004B79C1  |.  FF15 70A74D00 call    dword ptr [<&USER32.GetDesktopWi>; |[GetDesktopWindow
004B79C7  |.  50            push    eax                              ; |hWnd
004B79C8  |.  FF15 44A64D00 call    dword ptr [<&USER32.GetWindowRec>; \GetWindowRect
004B79CE  |>  6A 9C         push    -64                              ; /dY = FFFFFF9C (-100.)
004B79D0  |.  8D4424 1C     lea     eax, dword ptr [esp+1C]          ; |
004B79D4  |.  6A 9C         push    -64                              ; |dX = FFFFFF9C (-100.)
004B79D6  |.  50            push    eax                              ; |pRect
004B79D7  |.  FF15 A0A64D00 call    dword ptr [<&USER32.InflateRect>>; \InflateRect
004B79DD  |.  8B4C24 24     mov     ecx, dword ptr [esp+24]
004B79E1  |.  8B4424 1C     mov     eax, dword ptr [esp+1C]
004B79E5  |.  2BC8          sub     ecx, eax
004B79E7  |.  B8 56555555   mov     eax, 55555556
004B79EC  |.  F7E9          imul    ecx
004B79EE  |.  8B4424 20     mov     eax, dword ptr [esp+20]
004B79F2  |.  8B7C24 18     mov     edi, dword ptr [esp+18]
004B79F6  |.  8BCA          mov     ecx, edx
004B79F8  |.  2BC7          sub     eax, edi
004B79FA  |.  C1E9 1F       shr     ecx, 1F
004B79FD  |.  03D1          add     edx, ecx
004B79FF  |.  C1E2 02       shl     edx, 2
004B7A02  |.  8BCA          mov     ecx, edx
004B7A04  |.  2BC1          sub     eax, ecx
004B7A06  |.  99            cdq
004B7A07  |.  2BC2          sub     eax, edx
004B7A09  |.  D1F8          sar     eax, 1
004B7A0B  |.  03F8          add     edi, eax
004B7A0D  |.  897C24 18     mov     dword ptr [esp+18], edi
004B7A11  |.  03F9          add     edi, ecx
004B7A13  |.  897C24 20     mov     dword ptr [esp+20], edi
004B7A17  |>  833B 00       cmp     dword ptr [ebx], 0
004B7A1A  |.  74 16         je      short 004B7A32
004B7A1C  |.  8B0D F4B17300 mov     ecx, dword ptr [73B1F4]
004B7A22  |.  B8 00008B86   mov     eax, 868B0000
004B7A27  |.  85C9          test    ecx, ecx
004B7A29  |.  75 0C         jnz     short 004B7A37
004B7A2B  |.  B8 00008F86   mov     eax, 868F0000
004B7A30  |.  EB 05         jmp     short 004B7A37
004B7A32  |>  B8 0000CF06   mov     eax, 6CF0000
004B7A37  |>  8D5424 18     lea     edx, dword ptr [esp+18]
004B7A3B  |.  8BCE          mov     ecx, esi
004B7A3D  |.  52            push    edx
004B7A3E  |.  50            push    eax
004B7A3F  |.  55            push    ebp
004B7A40  |.  E8 1B980100   call    004D1260
004B7A45  |.  B9 0B000000   mov     ecx, 0B
004B7A4A  |.  33C0          xor     eax, eax
004B7A4C  |.  8D7C24 28     lea     edi, dword ptr [esp+28]
004B7A50  |.  68 01000080   push    80000001
004B7A55  |.  F3:AB         rep     stos dword ptr es:[edi]
004B7A57  |.  8D4424 18     lea     eax, dword ptr [esp+18]
004B7A5B  |.  8D4C24 2C     lea     ecx, dword ptr [esp+2C]
004B7A5F  |.  50            push    eax
004B7A60  |.  51            push    ecx
004B7A61  |.  BA 2C000000   mov     edx, 2C
004B7A66  |.  68 B4BC4F00   push    004FBCB4                         ;  UNICODE "MainWP"
004B7A6B  |.  68 E4E74E00   push    004EE7E4                         ;  UNICODE "Wnd"
004B7A70  |.  895424 28     mov     dword ptr [esp+28], edx
004B7A74  |.  895424 3C     mov     dword ptr [esp+3C], edx
004B7A78  |.  E8 934CFFFF   call    004AC710
004B7A7D  |.  83C4 14       add     esp, 14
004B7A80  |.  85C0          test    eax, eax
004B7A82  |.  74 0F         je      short 004B7A93
004B7A84  |.  8B46 04       mov     eax, dword ptr [esi+4]
004B7A87  |.  8D5424 28     lea     edx, dword ptr [esp+28]
004B7A8B  |.  52            push    edx                              ; /pWinplacement
004B7A8C  |.  50            push    eax                              ; |hWnd
004B7A8D  |.  FF15 14A84D00 call    dword ptr [<&USER32.SetWindowPla>; \SetWindowPlacement
004B7A93  |>  8D4C24 10     lea     ecx, dword ptr [esp+10]
004B7A97  |.  68 01000080   push    80000001
004B7A9C  |.  51            push    ecx
004B7A9D  |.  33FF          xor     edi, edi
004B7A9F  |.  68 9CBC4F00   push    004FBC9C                         ;  UNICODE "FullScreen"
004B7AA4  |.  68 E4E74E00   push    004EE7E4                         ;  UNICODE "Wnd"
004B7AA9  |.  897C24 20     mov     dword ptr [esp+20], edi
004B7AAD  |.  E8 4E52FFFF   call    004ACD00
004B7AB2  |.  83C4 10       add     esp, 10
004B7AB5  |.  85C0          test    eax, eax
004B7AB7  |.  74 0D         je      short 004B7AC6
004B7AB9  |.  397C24 10     cmp     dword ptr [esp+10], edi
004B7ABD  |.  74 07         je      short 004B7AC6
004B7ABF  |.  8B16          mov     edx, dword ptr [esi]
004B7AC1  |.  8BCE          mov     ecx, esi
004B7AC3  |.  FF52 10       call    dword ptr [edx+10]
004B7AC6  |>  8BCE          mov     ecx, esi
004B7AC8  |.  E8 C31A0000   call    004B9590
004B7ACD  |.  8B46 04       mov     eax, dword ptr [esi+4]
004B7AD0  |.  89BE C04A0000 mov     dword ptr [esi+4AC0], edi
004B7AD6  |.  5F            pop     edi
004B7AD7  |.  5E            pop     esi
004B7AD8  |.  5D            pop     ebp
004B7AD9  |.  5B            pop     ebx
004B7ADA  |.  83C4 44       add     esp, 44
004B7ADD  \.  C2 0C00       retn    0C
004B7AE0  /$  83EC 10       sub     esp, 10
004B7AE3  |.  53            push    ebx
004B7AE4  |.  55            push    ebp
004B7AE5  |.  56            push    esi
004B7AE6  |.  8BF1          mov     esi, ecx
004B7AE8  |.  57            push    edi
004B7AE9  |.  8B06          mov     eax, dword ptr [esi]
004B7AEB  |.  FF50 14       call    dword ptr [eax+14]
004B7AEE  |.  8B16          mov     edx, dword ptr [esi]
004B7AF0  |.  8BCE          mov     ecx, esi
004B7AF2  |.  FF52 30       call    dword ptr [edx+30]
004B7AF5  |.  8B7C24 24     mov     edi, dword ptr [esp+24]
004B7AF9  |.  8D4424 10     lea     eax, dword ptr [esp+10]
004B7AFD  |.  50            push    eax                              ; /pRect
004B7AFE  |.  57            push    edi                              ; |hWnd
004B7AFF  |.  897E 04       mov     dword ptr [esi+4], edi           ; |
004B7B02  |.  FF15 E0A64D00 call    dword ptr [<&USER32.GetClientRec>; \GetClientRect
004B7B08  |.  8B4C24 14     mov     ecx, dword ptr [esp+14]
004B7B0C  |.  8B96 A44D0000 mov     edx, dword ptr [esi+4DA4]
004B7B12  |.  83C1 28       add     ecx, 28
004B7B15  |.  8D5E 2C       lea     ebx, dword ptr [esi+2C]
004B7B18  |.  894C24 1C     mov     dword ptr [esp+1C], ecx
004B7B1C  |.  52            push    edx
004B7B1D  |.  8BCB          mov     ecx, ebx
004B7B1F  |.  E8 4C8A0000   call    004C0570
004B7B24  |.  56            push    esi                              ; /Arg4
004B7B25  |.  6A 00         push    0                                ; |Arg3 = 00000000
004B7B27  |.  68 E5030000   push    3E5                              ; |Arg2 = 000003E5
004B7B2C  |.  57            push    edi                              ; |Arg1
004B7B2D  |.  8D8E 58360000 lea     ecx, dword ptr [esi+3658]        ; |
004B7B33  |.  E8 78300000   call    004BABB0                         ; \TheWorld.004BABB0
004B7B38  |.  8B86 8C4D0000 mov     eax, dword ptr [esi+4D8C]
004B7B3E  |.  8DAE AC150000 lea     ebp, dword ptr [esi+15AC]
004B7B44  |.  50            push    eax                              ; /Arg3
004B7B45  |.  68 E4030000   push    3E4                              ; |Arg2 = 000003E4
004B7B4A  |.  57            push    edi                              ; |Arg1
004B7B4B  |.  8BCD          mov     ecx, ebp                         ; |
004B7B4D  |.  896C24 30     mov     dword ptr [esp+30], ebp          ; |
004B7B51  |.  E8 9A950000   call    004C10F0                         ; \TheWorld.004C10F0
004B7B56  |.  68 00044F00   push    004F0400                         ; /Arg4 = 004F0400
004B7B5B  |.  8D4C24 14     lea     ecx, dword ptr [esp+14]          ; |
004B7B5F  |.  68 E3030000   push    3E3                              ; |Arg3 = 000003E3
004B7B64  |.  51            push    ecx                              ; |Arg2
004B7B65  |.  57            push    edi                              ; |Arg1
004B7B66  |.  8BCB          mov     ecx, ebx                         ; |
004B7B68  |.  E8 13720000   call    004BED80                         ; \TheWorld.004BED80
004B7B6D  |.  8B86 A44D0000 mov     eax, dword ptr [esi+4DA4]
004B7B73  |.  85C0          test    eax, eax
004B7B75  |.  74 7E         je      short 004B7BF5
004B7B77  |.  8B56 04       mov     edx, dword ptr [esi+4]
004B7B7A  |.  6A 00         push    0                                ; /Arg8 = 00000000
004B7B7C  |.  6A 01         push    1                                ; |Arg7 = 00000001
004B7B7E  |.  6A 00         push    0                                ; |Arg6 = 00000000
004B7B80  |.  6A 00         push    0                                ; |Arg5 = 00000000
004B7B82  |.  68 E7030000   push    3E7                              ; |Arg4 = 000003E7
004B7B87  |.  8DAE 9C360000 lea     ebp, dword ptr [esi+369C]        ; |
004B7B8D  |.  52            push    edx                              ; |Arg3
004B7B8E  |.  57            push    edi                              ; |Arg2
004B7B8F  |.  68 F8BC4F00   push    004FBCF8                         ; |Arg1 = 004FBCF8
004B7B94  |.  8BCD          mov     ecx, ebp                         ; |
004B7B96  |.  E8 A5440100   call    004CC040                         ; \TheWorld.004CC040
004B7B9B  |.  8B46 04       mov     eax, dword ptr [esi+4]
004B7B9E  |.  6A 00         push    0                                ; /Arg5 = 00000000
004B7BA0  |.  6A 00         push    0                                ; |Arg4 = 00000000
004B7BA2  |.  68 E6030000   push    3E6                              ; |Arg3 = 000003E6
004B7BA7  |.  50            push    eax                              ; |Arg2
004B7BA8  |.  8D8E 3C3D0000 lea     ecx, dword ptr [esi+3D3C]        ; |
004B7BAE  |.  57            push    edi                              ; |Arg1
004B7BAF  |.  E8 8CEA0000   call    004C6640                         ; \TheWorld.004C6640
004B7BB4  |.  8B8E A84D0000 mov     ecx, dword ptr [esi+4DA8]
004B7BBA  |.  68 00010000   push    100
004B7BBF  |.  51            push    ecx
004B7BC0  |.  6A 0A         push    0A
004B7BC2      68 C8000000   push    0C8    ;■■■■■■■■■■■■■■■■■■■■■■■■■■所需修改之处
004B7BC7  |.  6A 0A         push    0A
004B7BC9  |.  55            push    ebp
004B7BCA  |.  8BCB          mov     ecx, ebx
004B7BCC  |.  E8 AF720000   call    004BEE80
004B7BD1  |.  8B96 A84D0000 mov     edx, dword ptr [esi+4DA8]
004B7BD7  |.  68 02010000   push    102
004B7BDC  |.  52            push    edx
004B7BDD  |.  6A 35         push    35
004B7BDF  |.  6A 35         push    35
004B7BE1  |.  8D86 3C3D0000 lea     eax, dword ptr [esi+3D3C]
004B7BE7  |.  6A 35         push    35
004B7BE9  |.  50            push    eax
004B7BEA  |.  8BCB          mov     ecx, ebx
004B7BEC  |.  E8 8F720000   call    004BEE80
004B7BF1  |.  8B6C24 24     mov     ebp, dword ptr [esp+24]
004B7BF5  |>  68 E4BC4F00   push    004FBCE4                         ; /Arg4 = 004FBCE4
004B7BFA  |.  8D4424 14     lea     eax, dword ptr [esp+14]          ; |
004B7BFE  |.  68 E2030000   push    3E2                              ; |Arg3 = 000003E2
004B7C03  |.  50            push    eax                              ; |Arg2
004B7C04  |.  57            push    edi                              ; |Arg1
004B7C05  |.  8D8E EC0A0000 lea     ecx, dword ptr [esi+AEC]         ; |
004B7C0B  |.  E8 70710000   call    004BED80                         ; \TheWorld.004BED80
004B7C10  |.  8B86 D44A0000 mov     eax, dword ptr [esi+4AD4]
004B7C16  |.  85C0          test    eax, eax
004B7C18  |.  75 07         jnz     short 004B7C21
004B7C1A  |.  8BCD          mov     ecx, ebp
004B7C1C  |.  E8 CFBB0000   call    004C37F0
004B7C21  |>  5F            pop     edi
004B7C22  |.  5E            pop     esi
004B7C23  |.  5D            pop     ebp
004B7C24  |.  5B            pop     ebx
004B7C25  |.  83C4 10       add     esp, 10
004B7C28  \.  C2 0400       retn    4

[/code]

ntmywzc 发表于 2009-7-27 11:16

修改后的标题栏效果:

大梦春秋 发表于 2009-7-27 11:19

之前之后有什么变化吗,能不能截图对比一下

乖~儿子! 发表于 2009-7-27 11:45

哇 太感谢你了! 这个我想要很久了,早就就得那个地方占地方,想去掉呢。 呵呵。

乖~儿子! 发表于 2009-7-27 12:10

楼主,你不能能教教我怎么把那个标题栏去掉?

ntmywzc 发表于 2009-7-27 12:45

[i=s] 本帖最后由 小絮 于 2009-7-27 15:36 编辑 [/i]

附我修改后的2.4.1.2的exe文件
标题宽度一个是350,一个是20(只能看见图标)

小絮 发表于 2009-7-27 15:35

厄,这个,提供修改过的tw下载不是很好吧?tw是款免费使用,用户虽然可以免费使用但不能随意对其进行反编译修改,更不能将修改的版本向外发布,这种行为是不道德的,也是论坛禁止的。
楼主修改自用可以,就不要发布了,至于想要这种效果的其他朋友,可以按楼主帖子中的方法自己修改或通过留下邮箱地址的方式向楼主索求。

ntmywzc 发表于 2009-7-27 18:59

[i=s] 本帖最后由 ntmywzc 于 2009-7-27 19:06 编辑 [/i]

:angry:

问题是多人开发的一个1.5M不到的EXE程序,连一个标题栏宽度的设置都没有,实在太不应该!多加这个参数,编程时间应该在一小时内就写好的了!

TMD就是一个小时之内就写出来的功能都不更新,才让我动用OD反编译去修改!


如果我是此程序的开发者或者我拿到源代码的话,就加一个参数应该十几分钟就写好程序了!

jym2005 发表于 2009-7-27 19:49

**** 作者被禁止或删除 内容自动屏蔽 ****

乖~儿子! 发表于 2009-7-28 12:45

好了,感谢各位,我已经搞定了,早就看着那个标题栏不顺眼了,已经把它干掉了,现在界面又更加清爽啦。

wenhh9999 发表于 2009-7-28 13:13

我喜欢标题栏的Aero效果,使用多功能标题栏,在Windows7中就没有Aero效果了哦

ntmywzc 发表于 2009-7-28 14:28

突发奇想,既然反编译了,不如顺便修改成为“山寨之窗”浏览器如何?!呵呵!

Arcanist 发表于 2009-7-28 14:29

LZ这张表列的不错

ntmywzc 发表于 2009-7-31 11:07

写了个专门修改标题栏宽度的补丁程序!

唉~~TMD开发组都要放弃2.0了,太不负责任了!

[attach]74517[/attach]

大梦春秋 发表于 2009-7-31 11:23

[b] [url=http://bbs.ioage.com/cn/redirect.php?goto=findpost&pid=973780&ptid=102891]15#[/url] [i]ntmywzc[/i] [/b]

木效果啊

ntmywzc 发表于 2009-7-31 11:33

[quote] 15# ntmywzc

木效果啊
[size=2][color=#999999]大梦春秋 发表于 2009-7-31 11:23[/color] [url=http://bbs.ioage.com/cn/redirect.php?goto=findpost&pid=973812&ptid=102891][img]http://bbs.ioage.com/cn/images/common/back.gif[/img][/url][/size][/quote]

把收藏栏移到标题栏上面去就应该有效果了。

大梦春秋 发表于 2009-7-31 11:44

[b] [url=http://bbs.ioage.com/cn/redirect.php?goto=findpost&pid=973837&ptid=102891]17#[/url] [i]ntmywzc[/i] [/b]
确实!收藏了

[color=#ffffff]PS:这个东西在论坛上留不住的[/color]

请点图片 发表于 2009-8-1 13:58

呵呵,lz辛苦了,好久就想修理一下tw了,能否把標題放中間啊?

哈 哈 ~~tw,看我今天晚上怎麼修理你![twfaceM006]

小絮 发表于 2009-8-1 16:30

我是使用pixos主题的,标题正好就是放在中间,比较好看。

twnel 发表于 2009-8-1 23:06

[quote]这个私聊我吧,qq 12033447, 我来教你怎么改。
[size=2][color=#999999]tjmzq 发表于 2009-7-27 21:41[/color] [url=http://bbs.ioage.com/cn/redirect.php?goto=findpost&pid=968981&ptid=102891][img]http://bbs.ioage.com/cn/images/common/back.gif[/img][/url][/size][/quote]


教教我,我想加几个功能

samuraiofu2 发表于 2010-1-27 09:15

太伟大了...........谢谢!

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.