爱技术

 找回密码
 注册会员

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 38733|回复: 13
收起左侧

【Patch开发】待机Pacth跳转表 V1

[复制链接]
发表于 2005-8-10 00:00:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册会员 微信登录

x

上次说到做个“跳转表”的事,因IDLE_ICON_PROCESS函数中被改得太乱,且不好找一个位置来做新Patch。得到RainMoon的肯定后,做了第一版,请Patcher们提建议。

源码就直接帖下来好参考:

$Segmented
$Mod167

;nonlyli(果果'er) 2004.2.22 16:40 1.0制作
;功能:从待机时图标处理函数(IDLE_ICON_PROCESS)跳转到跳转表,再由跳转表跳到相应新程序。
;      为制作这类Patch提供更简洁安全的方法,不必再考虑“补代码”等工作。
;  现准备了10个位置。

;1F7E00  跳转表起始地址:
;跳到跳转表:             0x363800:E6F9FFFF DABF007E

;1.跳转到新短信连续提示: 0x1F7E00:FFFFFFFF DABF6084
;2.跳转到倒计时待机:     0x1F7E04:FFFF 0D11
;3.8                            0x1F7E08:                       
;4.12                         0x1F7E0C:                               
;5.16                         0x1F7E10:
;6.20                         0x1F7E14:        ;以下按需要自己添加,现用nop填充。
;7.24                         0x1F7E18:
;8.28                         0x1F7E1C:
;9.32                         0x1F7E20:
;10.36                         0x1F7E24:
;补原指令:               0x1F7028:FFFFFFFF:E6F9FFFF
;跳转回Idle_Icon_Proces  0x1F702C:FFFF DB00

PatchBegin        EQU        0x1F7E00
;源码:
patch section code word AT PatchBegin
  fun1 proc far
    calls        0BFh,08460h        ;1
    jmpr        cc_UC,TableEnd        ;2
    nop                                ;
    nop                                ;3
    nop                                ;
    nop                                ;4
    nop                                ;
    nop                                ;5
    nop                                ;
    nop                                ;6        两条nop为一条calls的位置。
    nop                                ;
    nop                                ;7
    nop                                ;
    nop                                ;8
    nop                                ;
    nop                                ;9
    nop                                ;
    nop                                ;10
    nop                                ;
TableEnd:
    mov      r9,#0FFFFh                ;补原指令(本PATCH未保存寄存器,因调用的程序都应该处理好该寄存器)
    rets                        ;跳回IDLE_ICON_PRCOESS
  fun1 endp
patch ends
End


请Patcher们指正!

VKP及源码:
[upload=rar]viewfile.asp?ID=9956[/upload]




[此贴子已经被作者于2004-2-22 17:18:11编辑过]

 楼主| 发表于 2005-8-10 00:01:00 | 显示全部楼层
上次贴的内容也放在这里,这是最初创意:

    为了给本修改(新短信连续提醒)在IDLE_ICON(待机时图标处理)函数中找个位置,几乎没找到!而且0.01版居然跟“自动背景光控制”冲突上了,为解决这个冲突浪费了不少时间!这里代码太乱了![ 感叹太多了:) ],

创意:考虑在这里做个“跳转表”,只用一条跳转到“跳转区”,“跳转区”包含所有新程序的跳转指令,这样就不会这么大家乱找“黄金位置”,彻底降低IDLE_ICON区的楼盘价格,让平民也能轻松享受!

图示:

IDLE_ICON_PROCESS
...
->主跳转(所有新程序的必经之路)---+
                    |
                    |
                   跳转表:calls 数字时钟
                      :calls 新短消息连续提示
                      :calls 等等……
                      :补原指令
                      :rets(返回IDLE_ICON_PROCESS)


第一个跳转表Patch:用跳转表的“短消息连续提醒V4”,测试通过。

VKP帖下:

;跳转表v1
;nonlyli(果果'er) 2004.2.22 17:00

;跳到跳转表
0x363800: E6F9FFFF DABF007E

;若刷过"短消息连续提示V2.V4 则刷以下一句.
;0x363800: DABF6084 DABF007E


0x1F7E00: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DABF60840D11CC00CC00CC00CC00CC00
0x1F7E10: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF CC00CC00CC00CC00CC00CC00CC00CC00
0x1F7E20: FFFFFFFFFFFFFFFFFFFFFFFFFFFF CC00CC00CC00CC00E6F9FFFFDB00



[此贴子已经被作者于2004-2-22 17:33:42编辑过]

 楼主| 发表于 2005-8-10 00:02:00 | 显示全部楼层
下一个Patch用跳转表!
发表于 2005-8-10 00:03:00 | 显示全部楼层
好主义!规范Patch开发!
发表于 2005-8-10 00:04:00 | 显示全部楼层
支持好友!!!!!!!!!!!!!!
一切正规化!!!!!!!!!!!!!!!
发表于 2005-8-10 00:05:00 | 显示全部楼层
弓虽!!
发表于 2005-8-10 00:06:00 | 显示全部楼层
看不懂也顶!
发表于 2005-8-10 00:07:00 | 显示全部楼层
以下是引用黄豆在2004-2-22 18:29:30的发言:
看不懂也顶!

有理!
发表于 2005-8-10 00:08:00 | 显示全部楼层
好就一个字的说~~
 楼主| 发表于 2005-8-10 00:09:00 | 显示全部楼层
失败中的失败!
我准备将“倒计时”做到跳转表中,结果“数字时钟”比我的跳转表靠后,结果只好又重用以前的了。
早些有跳转表就好了!(这里调顺序才真正简单!)

还有好些不足,大家提提!
发表于 2005-8-10 00:10:00 | 显示全部楼层

似乎没有必要,有充分的空间可以设置断点。
发表于 2006-2-4 12:34:27 | 显示全部楼层
好,还不会用。
回复 支持 反对

使用道具 举报

发表于 2006-2-11 19:14:09 | 显示全部楼层
哈哈

虽然自己看不明白

但是还是支持一下!
回复 支持 反对

使用道具 举报

发表于 2006-8-18 11:28:31 | 显示全部楼层
确实看不懂。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员 微信登录

本版积分规则

小黑屋|Archiver|手机版|爱技术 ( 沪ICP备08115260号-3 )

GMT+8, 2024-5-20 00:22

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表