返回列表 发帖

[经验交流] 终于找到修改标题栏宽度的入口点了!

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

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

下面是OD的所在位置上下文代码:

  1. 004B7910  /$  83EC 44       sub     esp, 44
  2. 004B7913  |.  53            push    ebx
  3. 004B7914  |.  55            push    ebp
  4. 004B7915  |.  56            push    esi
  5. 004B7916  |.  8BF1          mov     esi, ecx
  6. 004B7918  |.  57            push    edi
  7. 004B7919  |.  68 01000080   push    80000001
  8. 004B791E  |.  8D9E A44D0000 lea     ebx, dword ptr [esi+4DA4]
  9. 004B7924  |.  53            push    ebx
  10. 004B7925  |.  68 64924F00   push    004F9264                         ;  UNICODE "SuperTitle"
  11. 004B792A  |.  68 E4E74E00   push    004EE7E4                         ;  UNICODE "Wnd"
  12. 004B792F  |.  E8 CC53FFFF   call    004ACD00
  13. 004B7934  |.  83C4 10       add     esp, 10
  14. 004B7937  |.  68 C4BC4F00   push    004FBCC4                         ; /MsgName = "TaskbarCreated"
  15. 004B793C  |.  FF15 20A84D00 call    dword ptr [<&USER32.RegisterWind>; \RegisterWindowMessageW
  16. 004B7942  |.  8B6C24 58     mov     ebp, dword ptr [esp+58]
  17. 004B7946  |.  A3 78C27300   mov     dword ptr [73C278], eax
  18. 004B794B  |.  8B4424 5C     mov     eax, dword ptr [esp+5C]
  19. 004B794F  |.  55            push    ebp                              ; /<%s>
  20. 004B7950  |.  68 28A14E00   push    004EA128                         ; |format = "%s"
  21. 004B7955  |.  8D8E F84A0000 lea     ecx, dword ptr [esi+4AF8]        ; |
  22. 004B795B  |.  68 04010000   push    104                              ; |count = 104 (260.)
  23. 004B7960  |.  51            push    ecx                              ; |wstr
  24. 004B7961  |.  C786 C04A0000>mov     dword ptr [esi+4AC0], 1          ; |
  25. 004B796B  |.  8986 D04A0000 mov     dword ptr [esi+4AD0], eax        ; |
  26. 004B7971  |.  FF15 F8A34D00 call    dword ptr [<&MSVCRT._snwprintf>] ; \_snwprintf
  27. 004B7977  |.  8B16          mov     edx, dword ptr [esi]
  28. 004B7979  |.  83C4 10       add     esp, 10
  29. 004B797C  |.  8BCE          mov     ecx, esi
  30. 004B797E  |.  66:C786 FE4C0>mov     word ptr [esi+4CFE], 0
  31. 004B7987  |.  FF52 20       call    dword ptr [edx+20]
  32. 004B798A  |.  8BCE          mov     ecx, esi
  33. 004B798C  |.  E8 CFFBFFFF   call    004B7560
  34. 004B7991  |.  8B4424 60     mov     eax, dword ptr [esp+60]
  35. 004B7995  |.  85C0          test    eax, eax
  36. 004B7997  |.  74 0E         je      short 004B79A7
  37. 004B7999  |.  50            push    eax                              ; /pRectSrc
  38. 004B799A  |.  8D4424 1C     lea     eax, dword ptr [esp+1C]          ; |
  39. 004B799E  |.  50            push    eax                              ; |pRectDst
  40. 004B799F  |.  FF15 A4A64D00 call    dword ptr [<&USER32.CopyRect>]   ; \CopyRect
  41. 004B79A5  |.  EB 70         jmp     short 004B7A17
  42. 004B79A7  |>  8D4C24 18     lea     ecx, dword ptr [esp+18]
  43. 004B79AB  |.  6A 00         push    0                                ; /UpdateProfile = 0
  44. 004B79AD  |.  51            push    ecx                              ; |pParam
  45. 004B79AE  |.  6A 00         push    0                                ; |wParam = 0
  46. 004B79B0  |.  6A 30         push    30                               ; |Action = SPI_GETWORKAREA
  47. 004B79B2  |.  FF15 B4A64D00 call    dword ptr [<&USER32.SystemParame>; \SystemParametersInfoW
  48. 004B79B8  |.  85C0          test    eax, eax
  49. 004B79BA  |.  75 12         jnz     short 004B79CE
  50. 004B79BC  |.  8D5424 18     lea     edx, dword ptr [esp+18]
  51. 004B79C0  |.  52            push    edx                              ; /pRect
  52. 004B79C1  |.  FF15 70A74D00 call    dword ptr [<&USER32.GetDesktopWi>; |[GetDesktopWindow
  53. 004B79C7  |.  50            push    eax                              ; |hWnd
  54. 004B79C8  |.  FF15 44A64D00 call    dword ptr [<&USER32.GetWindowRec>; \GetWindowRect
  55. 004B79CE  |>  6A 9C         push    -64                              ; /dY = FFFFFF9C (-100.)
  56. 004B79D0  |.  8D4424 1C     lea     eax, dword ptr [esp+1C]          ; |
  57. 004B79D4  |.  6A 9C         push    -64                              ; |dX = FFFFFF9C (-100.)
  58. 004B79D6  |.  50            push    eax                              ; |pRect
  59. 004B79D7  |.  FF15 A0A64D00 call    dword ptr [<&USER32.InflateRect>>; \InflateRect
  60. 004B79DD  |.  8B4C24 24     mov     ecx, dword ptr [esp+24]
  61. 004B79E1  |.  8B4424 1C     mov     eax, dword ptr [esp+1C]
  62. 004B79E5  |.  2BC8          sub     ecx, eax
  63. 004B79E7  |.  B8 56555555   mov     eax, 55555556
  64. 004B79EC  |.  F7E9          imul    ecx
  65. 004B79EE  |.  8B4424 20     mov     eax, dword ptr [esp+20]
  66. 004B79F2  |.  8B7C24 18     mov     edi, dword ptr [esp+18]
  67. 004B79F6  |.  8BCA          mov     ecx, edx
  68. 004B79F8  |.  2BC7          sub     eax, edi
  69. 004B79FA  |.  C1E9 1F       shr     ecx, 1F
  70. 004B79FD  |.  03D1          add     edx, ecx
  71. 004B79FF  |.  C1E2 02       shl     edx, 2
  72. 004B7A02  |.  8BCA          mov     ecx, edx
  73. 004B7A04  |.  2BC1          sub     eax, ecx
  74. 004B7A06  |.  99            cdq
  75. 004B7A07  |.  2BC2          sub     eax, edx
  76. 004B7A09  |.  D1F8          sar     eax, 1
  77. 004B7A0B  |.  03F8          add     edi, eax
  78. 004B7A0D  |.  897C24 18     mov     dword ptr [esp+18], edi
  79. 004B7A11  |.  03F9          add     edi, ecx
  80. 004B7A13  |.  897C24 20     mov     dword ptr [esp+20], edi
  81. 004B7A17  |>  833B 00       cmp     dword ptr [ebx], 0
  82. 004B7A1A  |.  74 16         je      short 004B7A32
  83. 004B7A1C  |.  8B0D F4B17300 mov     ecx, dword ptr [73B1F4]
  84. 004B7A22  |.  B8 00008B86   mov     eax, 868B0000
  85. 004B7A27  |.  85C9          test    ecx, ecx
  86. 004B7A29  |.  75 0C         jnz     short 004B7A37
  87. 004B7A2B  |.  B8 00008F86   mov     eax, 868F0000
  88. 004B7A30  |.  EB 05         jmp     short 004B7A37
  89. 004B7A32  |>  B8 0000CF06   mov     eax, 6CF0000
  90. 004B7A37  |>  8D5424 18     lea     edx, dword ptr [esp+18]
  91. 004B7A3B  |.  8BCE          mov     ecx, esi
  92. 004B7A3D  |.  52            push    edx
  93. 004B7A3E  |.  50            push    eax
  94. 004B7A3F  |.  55            push    ebp
  95. 004B7A40  |.  E8 1B980100   call    004D1260
  96. 004B7A45  |.  B9 0B000000   mov     ecx, 0B
  97. 004B7A4A  |.  33C0          xor     eax, eax
  98. 004B7A4C  |.  8D7C24 28     lea     edi, dword ptr [esp+28]
  99. 004B7A50  |.  68 01000080   push    80000001
  100. 004B7A55  |.  F3:AB         rep     stos dword ptr es:[edi]
  101. 004B7A57  |.  8D4424 18     lea     eax, dword ptr [esp+18]
  102. 004B7A5B  |.  8D4C24 2C     lea     ecx, dword ptr [esp+2C]
  103. 004B7A5F  |.  50            push    eax
  104. 004B7A60  |.  51            push    ecx
  105. 004B7A61  |.  BA 2C000000   mov     edx, 2C
  106. 004B7A66  |.  68 B4BC4F00   push    004FBCB4                         ;  UNICODE "MainWP"
  107. 004B7A6B  |.  68 E4E74E00   push    004EE7E4                         ;  UNICODE "Wnd"
  108. 004B7A70  |.  895424 28     mov     dword ptr [esp+28], edx
  109. 004B7A74  |.  895424 3C     mov     dword ptr [esp+3C], edx
  110. 004B7A78  |.  E8 934CFFFF   call    004AC710
  111. 004B7A7D  |.  83C4 14       add     esp, 14
  112. 004B7A80  |.  85C0          test    eax, eax
  113. 004B7A82  |.  74 0F         je      short 004B7A93
  114. 004B7A84  |.  8B46 04       mov     eax, dword ptr [esi+4]
  115. 004B7A87  |.  8D5424 28     lea     edx, dword ptr [esp+28]
  116. 004B7A8B  |.  52            push    edx                              ; /pWinplacement
  117. 004B7A8C  |.  50            push    eax                              ; |hWnd
  118. 004B7A8D  |.  FF15 14A84D00 call    dword ptr [<&USER32.SetWindowPla>; \SetWindowPlacement
  119. 004B7A93  |>  8D4C24 10     lea     ecx, dword ptr [esp+10]
  120. 004B7A97  |.  68 01000080   push    80000001
  121. 004B7A9C  |.  51            push    ecx
  122. 004B7A9D  |.  33FF          xor     edi, edi
  123. 004B7A9F  |.  68 9CBC4F00   push    004FBC9C                         ;  UNICODE "FullScreen"
  124. 004B7AA4  |.  68 E4E74E00   push    004EE7E4                         ;  UNICODE "Wnd"
  125. 004B7AA9  |.  897C24 20     mov     dword ptr [esp+20], edi
  126. 004B7AAD  |.  E8 4E52FFFF   call    004ACD00
  127. 004B7AB2  |.  83C4 10       add     esp, 10
  128. 004B7AB5  |.  85C0          test    eax, eax
  129. 004B7AB7  |.  74 0D         je      short 004B7AC6
  130. 004B7AB9  |.  397C24 10     cmp     dword ptr [esp+10], edi
  131. 004B7ABD  |.  74 07         je      short 004B7AC6
  132. 004B7ABF  |.  8B16          mov     edx, dword ptr [esi]
  133. 004B7AC1  |.  8BCE          mov     ecx, esi
  134. 004B7AC3  |.  FF52 10       call    dword ptr [edx+10]
  135. 004B7AC6  |>  8BCE          mov     ecx, esi
  136. 004B7AC8  |.  E8 C31A0000   call    004B9590
  137. 004B7ACD  |.  8B46 04       mov     eax, dword ptr [esi+4]
  138. 004B7AD0  |.  89BE C04A0000 mov     dword ptr [esi+4AC0], edi
  139. 004B7AD6  |.  5F            pop     edi
  140. 004B7AD7  |.  5E            pop     esi
  141. 004B7AD8  |.  5D            pop     ebp
  142. 004B7AD9  |.  5B            pop     ebx
  143. 004B7ADA  |.  83C4 44       add     esp, 44
  144. 004B7ADD  \.  C2 0C00       retn    0C
  145. 004B7AE0  /$  83EC 10       sub     esp, 10
  146. 004B7AE3  |.  53            push    ebx
  147. 004B7AE4  |.  55            push    ebp
  148. 004B7AE5  |.  56            push    esi
  149. 004B7AE6  |.  8BF1          mov     esi, ecx
  150. 004B7AE8  |.  57            push    edi
  151. 004B7AE9  |.  8B06          mov     eax, dword ptr [esi]
  152. 004B7AEB  |.  FF50 14       call    dword ptr [eax+14]
  153. 004B7AEE  |.  8B16          mov     edx, dword ptr [esi]
  154. 004B7AF0  |.  8BCE          mov     ecx, esi
  155. 004B7AF2  |.  FF52 30       call    dword ptr [edx+30]
  156. 004B7AF5  |.  8B7C24 24     mov     edi, dword ptr [esp+24]
  157. 004B7AF9  |.  8D4424 10     lea     eax, dword ptr [esp+10]
  158. 004B7AFD  |.  50            push    eax                              ; /pRect
  159. 004B7AFE  |.  57            push    edi                              ; |hWnd
  160. 004B7AFF  |.  897E 04       mov     dword ptr [esi+4], edi           ; |
  161. 004B7B02  |.  FF15 E0A64D00 call    dword ptr [<&USER32.GetClientRec>; \GetClientRect
  162. 004B7B08  |.  8B4C24 14     mov     ecx, dword ptr [esp+14]
  163. 004B7B0C  |.  8B96 A44D0000 mov     edx, dword ptr [esi+4DA4]
  164. 004B7B12  |.  83C1 28       add     ecx, 28
  165. 004B7B15  |.  8D5E 2C       lea     ebx, dword ptr [esi+2C]
  166. 004B7B18  |.  894C24 1C     mov     dword ptr [esp+1C], ecx
  167. 004B7B1C  |.  52            push    edx
  168. 004B7B1D  |.  8BCB          mov     ecx, ebx
  169. 004B7B1F  |.  E8 4C8A0000   call    004C0570
  170. 004B7B24  |.  56            push    esi                              ; /Arg4
  171. 004B7B25  |.  6A 00         push    0                                ; |Arg3 = 00000000
  172. 004B7B27  |.  68 E5030000   push    3E5                              ; |Arg2 = 000003E5
  173. 004B7B2C  |.  57            push    edi                              ; |Arg1
  174. 004B7B2D  |.  8D8E 58360000 lea     ecx, dword ptr [esi+3658]        ; |
  175. 004B7B33  |.  E8 78300000   call    004BABB0                         ; \TheWorld.004BABB0
  176. 004B7B38  |.  8B86 8C4D0000 mov     eax, dword ptr [esi+4D8C]
  177. 004B7B3E  |.  8DAE AC150000 lea     ebp, dword ptr [esi+15AC]
  178. 004B7B44  |.  50            push    eax                              ; /Arg3
  179. 004B7B45  |.  68 E4030000   push    3E4                              ; |Arg2 = 000003E4
  180. 004B7B4A  |.  57            push    edi                              ; |Arg1
  181. 004B7B4B  |.  8BCD          mov     ecx, ebp                         ; |
  182. 004B7B4D  |.  896C24 30     mov     dword ptr [esp+30], ebp          ; |
  183. 004B7B51  |.  E8 9A950000   call    004C10F0                         ; \TheWorld.004C10F0
  184. 004B7B56  |.  68 00044F00   push    004F0400                         ; /Arg4 = 004F0400
  185. 004B7B5B  |.  8D4C24 14     lea     ecx, dword ptr [esp+14]          ; |
  186. 004B7B5F  |.  68 E3030000   push    3E3                              ; |Arg3 = 000003E3
  187. 004B7B64  |.  51            push    ecx                              ; |Arg2
  188. 004B7B65  |.  57            push    edi                              ; |Arg1
  189. 004B7B66  |.  8BCB          mov     ecx, ebx                         ; |
  190. 004B7B68  |.  E8 13720000   call    004BED80                         ; \TheWorld.004BED80
  191. 004B7B6D  |.  8B86 A44D0000 mov     eax, dword ptr [esi+4DA4]
  192. 004B7B73  |.  85C0          test    eax, eax
  193. 004B7B75  |.  74 7E         je      short 004B7BF5
  194. 004B7B77  |.  8B56 04       mov     edx, dword ptr [esi+4]
  195. 004B7B7A  |.  6A 00         push    0                                ; /Arg8 = 00000000
  196. 004B7B7C  |.  6A 01         push    1                                ; |Arg7 = 00000001
  197. 004B7B7E  |.  6A 00         push    0                                ; |Arg6 = 00000000
  198. 004B7B80  |.  6A 00         push    0                                ; |Arg5 = 00000000
  199. 004B7B82  |.  68 E7030000   push    3E7                              ; |Arg4 = 000003E7
  200. 004B7B87  |.  8DAE 9C360000 lea     ebp, dword ptr [esi+369C]        ; |
  201. 004B7B8D  |.  52            push    edx                              ; |Arg3
  202. 004B7B8E  |.  57            push    edi                              ; |Arg2
  203. 004B7B8F  |.  68 F8BC4F00   push    004FBCF8                         ; |Arg1 = 004FBCF8
  204. 004B7B94  |.  8BCD          mov     ecx, ebp                         ; |
  205. 004B7B96  |.  E8 A5440100   call    004CC040                         ; \TheWorld.004CC040
  206. 004B7B9B  |.  8B46 04       mov     eax, dword ptr [esi+4]
  207. 004B7B9E  |.  6A 00         push    0                                ; /Arg5 = 00000000
  208. 004B7BA0  |.  6A 00         push    0                                ; |Arg4 = 00000000
  209. 004B7BA2  |.  68 E6030000   push    3E6                              ; |Arg3 = 000003E6
  210. 004B7BA7  |.  50            push    eax                              ; |Arg2
  211. 004B7BA8  |.  8D8E 3C3D0000 lea     ecx, dword ptr [esi+3D3C]        ; |
  212. 004B7BAE  |.  57            push    edi                              ; |Arg1
  213. 004B7BAF  |.  E8 8CEA0000   call    004C6640                         ; \TheWorld.004C6640
  214. 004B7BB4  |.  8B8E A84D0000 mov     ecx, dword ptr [esi+4DA8]
  215. 004B7BBA  |.  68 00010000   push    100
  216. 004B7BBF  |.  51            push    ecx
  217. 004B7BC0  |.  6A 0A         push    0A
  218. 004B7BC2      68 C8000000   push    0C8    ;■■■■■■■■■■■■■■■■■■■■■■■■■■所需修改之处
  219. 004B7BC7  |.  6A 0A         push    0A
  220. 004B7BC9  |.  55            push    ebp
  221. 004B7BCA  |.  8BCB          mov     ecx, ebx
  222. 004B7BCC  |.  E8 AF720000   call    004BEE80
  223. 004B7BD1  |.  8B96 A84D0000 mov     edx, dword ptr [esi+4DA8]
  224. 004B7BD7  |.  68 02010000   push    102
  225. 004B7BDC  |.  52            push    edx
  226. 004B7BDD  |.  6A 35         push    35
  227. 004B7BDF  |.  6A 35         push    35
  228. 004B7BE1  |.  8D86 3C3D0000 lea     eax, dword ptr [esi+3D3C]
  229. 004B7BE7  |.  6A 35         push    35
  230. 004B7BE9  |.  50            push    eax
  231. 004B7BEA  |.  8BCB          mov     ecx, ebx
  232. 004B7BEC  |.  E8 8F720000   call    004BEE80
  233. 004B7BF1  |.  8B6C24 24     mov     ebp, dword ptr [esp+24]
  234. 004B7BF5  |>  68 E4BC4F00   push    004FBCE4                         ; /Arg4 = 004FBCE4
  235. 004B7BFA  |.  8D4424 14     lea     eax, dword ptr [esp+14]          ; |
  236. 004B7BFE  |.  68 E2030000   push    3E2                              ; |Arg3 = 000003E2
  237. 004B7C03  |.  50            push    eax                              ; |Arg2
  238. 004B7C04  |.  57            push    edi                              ; |Arg1
  239. 004B7C05  |.  8D8E EC0A0000 lea     ecx, dword ptr [esi+AEC]         ; |
  240. 004B7C0B  |.  E8 70710000   call    004BED80                         ; \TheWorld.004BED80
  241. 004B7C10  |.  8B86 D44A0000 mov     eax, dword ptr [esi+4AD4]
  242. 004B7C16  |.  85C0          test    eax, eax
  243. 004B7C18  |.  75 07         jnz     short 004B7C21
  244. 004B7C1A  |.  8BCD          mov     ecx, ebp
  245. 004B7C1C  |.  E8 CFBB0000   call    004C37F0
  246. 004B7C21  |>  5F            pop     edi
  247. 004B7C22  |.  5E            pop     esi
  248. 004B7C23  |.  5D            pop     ebp
  249. 004B7C24  |.  5B            pop     ebx
  250. 004B7C25  |.  83C4 10       add     esp, 10
  251. 004B7C28  \.  C2 0400       retn    4
复制代码

修改后的标题栏效果:
附件: 您需要登录才可以下载或查看附件。没有帐号?加入 我们

TOP

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




TOP

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

TOP

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

TOP

本帖最后由 小絮 于 2009-7-27 15:36 编辑

附我修改后的2.4.1.2的exe文件
标题宽度一个是350,一个是20(只能看见图标)
附件: 您需要登录才可以下载或查看附件。没有帐号?加入 我们

TOP

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

TOP

本帖最后由 ntmywzc 于 2009-7-27 19:06 编辑



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

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


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

TOP

提示: 作者被禁止或删除 内容自动屏蔽
http://valid.canardpc.com/cache/banner/2854499.png
新浪/腾讯/饭否@小蛐蛐   twitter @jiayiming
如有过滤规则需要更新,请尽量原帖反馈提醒。

TOP

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

TOP

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

TOP

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

TOP

返回列表