入门系列(七)-汇编功能
作者:
今天我们的目标程序是版。这是一个非常小的程序卸载工具, 编写,大小只有 。我拿到的这个是上次闪电狼兄弟给我的,附带在里面的简体
中文语言文件是由六芒星制作的。这个程序有个毛病:就是在列出的可卸载程序上双击查看属性时,弹出的属性窗口的字体非常难看,应该就是系统字体
( !"):
我们今天的目标就是利用的汇编功能把上面显示的字体改成我们常见的 # 号(小五)宋体。首先我们用载入程序,按$%"组合键查找一下有哪些&'
(函数,只发现一个和设置字体相关的!)(*+&。现在我们按鼠标右键,选择“在每个参考上设置断点”,关掉名称对话框,!# 运行,程序已经运行起来了。我
们在程序的列表框中随便找一项双击一下,很不幸,那个字体难看的界面又出现了,没有任何动作。可见创建这个窗口的时候根本没调用!)(*+&,
问题现在就变得有点复杂了。先点确定把这个字体难看的对话框关闭,现在我们从另一个方面考虑:既然没有调用设置字体的函数,那我们来看看这个窗口是如何创建
的,跟踪窗口创建过程可能会找到一些对我们有用的信息。现在我们再回到我们调试程序的领空,按$%"看一下,发现,*)-.&这个&'(函数比较可疑。我
们在,*)-.&函数的每个参考上设上断点,在的列表框中再随便找一项双击一下,被断下:
///0!12!!1#03///2&44,$'$5678$3,*)-.&9:;<断在这里
上下翻看一下代码:
///0!21/2'=&>;2?(
///0!201/2&>@,$'$56'A/:;2
///0!!2&//2'=/;2?B"44
///0!2/2&&>@(;2
///0!2!!C1/02'=,$'$56'%0:;2?'
///0!2!!C1/2'=,$'$56'A/:;2=?
///0!#21C2'=(;2,*?
///0!&21/2'=&>;2
///0!2!!C12'=,$'$56'A:;2>
///0!2!!C12'=,$'$56'A:;2
///0!1200////2'=D///0/;2,*)-"DBEE
///0!120#///2'=D///#;2BE&(E
///0!12!!C12'=,$'$56'A3:;2.
///0!12!!1#03///2&44,$'$5678$3,*)-.&9:;<断在这里
///0!2&//2'=/;第一处要修改的地方
///0!20#1!2,$'$56'A:@&>
///0!#20&/#0!!!!2&447D /30/9
///0!21/2'=&>;2?(
///0!!2012&>@,$'$56'A3:;2
///0!C32&//2'=/;2?B"44
///0!C2/!/2&(@&>;2
///0!C2!!C1/02'=,$'$56'%0:;2?'
///0!C#2!!C12'=,$'$56'A:;2=?
///0!C212'=>;2,*?
///0!C212'=(;2