sublime text 2是一款优秀代码编辑器,目前还是喜欢使用老版本,毕竟新版本需要经过时间的检验。但是用老版本,每次打开时都会出现更新提示。
虽然不影响使用,但每次都弹还是有点受不了,于是就想使用OllyICE修改这段弹出代码,很明显这个对话框是调用MessageBoxA或者MessageBoxW弹出来的。
经过调试发现是MessageBoxW。为MessageBoxW设断点,在OllyICE运行Sublime text,断在MessageBoxW后,点击执行到返回(Ctrl+F9),
光标会定位在0041FEDB。
0041FED1 |. 56 push esi ; /Style
0041FED2 |. 52 push edx ; |Title
0041FED3 |. 51 push ecx ; |Text
0041FED4 |. 50 push eax ; |hOwner
0041FED5 |. FF15 60286C00 call dword ptr [<&USER32.MessageBoxW>>; \MessageBoxW
0041FEDB |. 83F8 01 cmp eax, 1
所以我们要nop掉0041FED1到0041FED5这些行的代码,还要赋值eax为0,为了使堆栈平衡,选中这些行代码按空格输入mov eax,0,修改后结果为
0041FED1 B8 00000000 mov eax, 0
0041FED6 90 nop
0041FED7 90 nop
0041FED8 90 nop
0041FED9 90 nop
0041FEDA 90 nop
0041FEDB |. 83F8 01 cmp eax, 1
复制到可执行文件->所有修改->全部复制->保存文件,下次打开时更新提示消失了。