-
-
[分享]TM2007去除自动升级提示
-
发表于: 2009-8-13 17:42 3920
-
TM2007去除自动升级提示
相信还是有部分朋友在使用TM2007,因为它非常简洁直观,但由于版本的原因,每次登陆的时候都会自动弹出一个NAG提示我们升级,我们自然不能升级咯,但是每登陆一次都会弹出这样一个窗口来,难免会让人觉得有些烦恼,我简单的来说一下去掉那升级窗口的方法!
由于我下载的是绿色版本,打开安装目录,首先会看到一个shell.exe,这就是我们每次要登陆的东西,我想肯定就是通过它来检查升级的,但我们看一下文件大小只有60KB,显示不是真正的主程序,那么真正的主程序在哪儿呢!我们先运行TM登陆QQ,然后再使用OD的附加功能,这时我们就看到了真正TM登陆器调用的路径了
大家可以看到是在我们当前目录下的 TMDLLS文件夹中
引用:
未命名的窗口, 条目 12
进程=00000518
名称=TM
窗口=Socket Notification Sink
路径=D:\Program Files\Tencent\TM2007\TMDLLS\TM .exe
我们既然已经知道真正TM所在的目录之后,这时我们就好办啦!直接到TMDLLS中用OD载入TM.exe
在调试之前我们可以先看一下TMDLLS目录中的一些文件,这有助于我们分析,我简单的看了一下,发现有两个可运行的文件,分别有:QQLiveUpdate.exe、BDLiveUpdate.exe,前者就是自动弹出升级的那个对话框,后面那个是出错的框,这时我们找到了升级会自动调用QQLiveUpdate.exe。
我们在OD中直接搜索字符串QQLiveUpdate.exe,会搜索到几个调用QQLiveUpdate.exe的地方,我们分别下好F2断点
F9运行,来到这儿
引用:
004013F5 >mov dword ptr [esp], TM.0051B024 ; QQLiveUpdate.exe
004013FC >push dword ptr [eax] ; 这儿是读取这个目录的一些信息
004013FE >lea eax, [ebp-20]
00401401 >mov byte ptr [ebp-4], 1
00401405 >push TM.0051B234 ; %s%s
0040140A >push eax
0040140B >call <jmp.&MFC42.#2818>
00401410 >and byte ptr [ebp-4], 0
00401414 >add esp, 10
00401417 >lea ecx, [ebp-28]
0040141A >call <jmp.&MFC42.#800>
0040141F >push edi
00401420 >push dword ptr [ebp-20]
00401423 >push ebx
00401424 >push TM.0051B020 ; TM
00401429 >call TM.0040F660
0040142E >add esp, 10
00401431 >cmp eax, edi
00401433 >je TM.004017F5 ; 改跳了程序就直接退出了,这段不是我们关键的
00401439 >push edi
再次F9运行,登陆框已经启动了,登陆之后中断到
引用:
0045CBE5 />push ebp ; 在这儿改为retn
0045CBE6 |>mov ebp, esp
0045CBE8 |>push -1
0045CBEA |>push TM.0050887E ; SE 处理程序安装
0045CBEF |>mov eax, fs:[0]
0045CBF5 |>push eax
0045CBF6 |>mov fs:[0], esp
0045CBFD |>sub esp, 0C
0045CC00 |>mov [local.6], ecx
0045CC03 |>mov [local.5], 0
0045CC0A |>lea eax, [local.4]
0045CC0D |>push eax
0045CC0E |>call [<&BasicCtrlDll.GetExeFolder>] ; BasicCtr.GetExeFolder
0045CC14 |>add esp, 4
0045CC17 |>mov [local.1], 1 ; 下面这就调用升级文件了,我们不让它跳用
0045CC1E |>push TM.0056105C ; QQLiveUpdate.exe
0045CC23 |>lea ecx, [local.4]
0045CC26 |>call <jmp.&MFC42.#941>
0045CC2B |>lea ecx, [local.4]
再次F9运行,又中断到
引用:
0045ED4E |. >call [ecx+2C] ; (Initial CPU selection)
0045ED51 |. >test eax, eax
0045ED53 |. >je short TM.0045ED8B ; 所以这儿一定不能让它跳,一跳程序就会出错,直接NOP
0045ED55 |. >mov [local.22], 1
0045ED5C |. >mov byte ptr [ebp-4], 1
0045ED60 |. >lea ecx, [local.5]
0045ED63 |. >call TM.004027D5
0045ED68 |. >mov byte ptr [ebp-4], 0
0045ED6C |. >lea ecx, [local.6]
0045ED6F |. >call TM.004027D5
0045ED74 |. >mov [local.1], -1
0045ED7B |. >lea ecx, [local.7]
0045ED7E |. >call <jmp.&MFC42.#800>
0045ED83 |. >mov eax, [local.22]
0045ED86 |. >jmp TM.0045EF2C
0045ED8B |> >mov ecx, [arg.1] ; 这下面就会调用程序出错了
0045ED8E |. >call TM.0045EF55
0045ED93 |. >mov byte ptr [ebp-10], 0
0045ED97 |. >mov [local.13], 1
0045ED9E |. >lea eax, [local.4]
0045EDA1 |. >push eax
0045EDA2 |. >push TM.0052557C ; bEnableAutoUpdate
0045EDA7 |. >lea ecx, [local.5]
0045EDAA |. >call TM.00491A40
我们这时再F9运行,就不会弹出升级的对话框了,复制保存的时候大家不能覆盖目录中的TM.exe文件,否则不能运行,大家新建一个快捷方式到桌面上也是一样的啦!呵呵,分析得不是很好,希望大家多多见谅!
相信还是有部分朋友在使用TM2007,因为它非常简洁直观,但由于版本的原因,每次登陆的时候都会自动弹出一个NAG提示我们升级,我们自然不能升级咯,但是每登陆一次都会弹出这样一个窗口来,难免会让人觉得有些烦恼,我简单的来说一下去掉那升级窗口的方法!
由于我下载的是绿色版本,打开安装目录,首先会看到一个shell.exe,这就是我们每次要登陆的东西,我想肯定就是通过它来检查升级的,但我们看一下文件大小只有60KB,显示不是真正的主程序,那么真正的主程序在哪儿呢!我们先运行TM登陆QQ,然后再使用OD的附加功能,这时我们就看到了真正TM登陆器调用的路径了
大家可以看到是在我们当前目录下的 TMDLLS文件夹中
引用:
未命名的窗口, 条目 12
进程=00000518
名称=TM
窗口=Socket Notification Sink
路径=D:\Program Files\Tencent\TM2007\TMDLLS\TM .exe
我们既然已经知道真正TM所在的目录之后,这时我们就好办啦!直接到TMDLLS中用OD载入TM.exe
在调试之前我们可以先看一下TMDLLS目录中的一些文件,这有助于我们分析,我简单的看了一下,发现有两个可运行的文件,分别有:QQLiveUpdate.exe、BDLiveUpdate.exe,前者就是自动弹出升级的那个对话框,后面那个是出错的框,这时我们找到了升级会自动调用QQLiveUpdate.exe。
我们在OD中直接搜索字符串QQLiveUpdate.exe,会搜索到几个调用QQLiveUpdate.exe的地方,我们分别下好F2断点
F9运行,来到这儿
引用:
004013F5 >mov dword ptr [esp], TM.0051B024 ; QQLiveUpdate.exe
004013FC >push dword ptr [eax] ; 这儿是读取这个目录的一些信息
004013FE >lea eax, [ebp-20]
00401401 >mov byte ptr [ebp-4], 1
00401405 >push TM.0051B234 ; %s%s
0040140A >push eax
0040140B >call <jmp.&MFC42.#2818>
00401410 >and byte ptr [ebp-4], 0
00401414 >add esp, 10
00401417 >lea ecx, [ebp-28]
0040141A >call <jmp.&MFC42.#800>
0040141F >push edi
00401420 >push dword ptr [ebp-20]
00401423 >push ebx
00401424 >push TM.0051B020 ; TM
00401429 >call TM.0040F660
0040142E >add esp, 10
00401431 >cmp eax, edi
00401433 >je TM.004017F5 ; 改跳了程序就直接退出了,这段不是我们关键的
00401439 >push edi
再次F9运行,登陆框已经启动了,登陆之后中断到
引用:
0045CBE5 />push ebp ; 在这儿改为retn
0045CBE6 |>mov ebp, esp
0045CBE8 |>push -1
0045CBEA |>push TM.0050887E ; SE 处理程序安装
0045CBEF |>mov eax, fs:[0]
0045CBF5 |>push eax
0045CBF6 |>mov fs:[0], esp
0045CBFD |>sub esp, 0C
0045CC00 |>mov [local.6], ecx
0045CC03 |>mov [local.5], 0
0045CC0A |>lea eax, [local.4]
0045CC0D |>push eax
0045CC0E |>call [<&BasicCtrlDll.GetExeFolder>] ; BasicCtr.GetExeFolder
0045CC14 |>add esp, 4
0045CC17 |>mov [local.1], 1 ; 下面这就调用升级文件了,我们不让它跳用
0045CC1E |>push TM.0056105C ; QQLiveUpdate.exe
0045CC23 |>lea ecx, [local.4]
0045CC26 |>call <jmp.&MFC42.#941>
0045CC2B |>lea ecx, [local.4]
再次F9运行,又中断到
引用:
0045ED4E |. >call [ecx+2C] ; (Initial CPU selection)
0045ED51 |. >test eax, eax
0045ED53 |. >je short TM.0045ED8B ; 所以这儿一定不能让它跳,一跳程序就会出错,直接NOP
0045ED55 |. >mov [local.22], 1
0045ED5C |. >mov byte ptr [ebp-4], 1
0045ED60 |. >lea ecx, [local.5]
0045ED63 |. >call TM.004027D5
0045ED68 |. >mov byte ptr [ebp-4], 0
0045ED6C |. >lea ecx, [local.6]
0045ED6F |. >call TM.004027D5
0045ED74 |. >mov [local.1], -1
0045ED7B |. >lea ecx, [local.7]
0045ED7E |. >call <jmp.&MFC42.#800>
0045ED83 |. >mov eax, [local.22]
0045ED86 |. >jmp TM.0045EF2C
0045ED8B |> >mov ecx, [arg.1] ; 这下面就会调用程序出错了
0045ED8E |. >call TM.0045EF55
0045ED93 |. >mov byte ptr [ebp-10], 0
0045ED97 |. >mov [local.13], 1
0045ED9E |. >lea eax, [local.4]
0045EDA1 |. >push eax
0045EDA2 |. >push TM.0052557C ; bEnableAutoUpdate
0045EDA7 |. >lea ecx, [local.5]
0045EDAA |. >call TM.00491A40
我们这时再F9运行,就不会弹出升级的对话框了,复制保存的时候大家不能覆盖目录中的TM.exe文件,否则不能运行,大家新建一个快捷方式到桌面上也是一样的啦!呵呵,分析得不是很好,希望大家多多见谅!
赞赏
他的文章
- [分享]TM2007去除自动升级提示 3921
- [分享]新的ROOKIT检测工具以及全套源码! 5691
- [推荐]使用壳sdk来保护程序 4101
- [分享]脱壳经验 5255
- [推荐]手动脱壳进阶(动画) 3557
看原图
赞赏
雪币:
留言: