【软件版本】v7.0.0.8
【发布时间】2011.7.13
【操作平台】Win7
【使用工具】PEiD+OD+WinHex
【作者声明】本人只是对逆向技术感兴趣,没有其他目的。
--------------------------------------------------------------------------------------------------------
前几天在论坛上看到了一个去酷狗7广告的逆向帖子(帖子链接:http://bbs.pediy.com/showthread.php?t=141203),于是自己也想把自己的酷狗7广告去掉。于是我按照帖子上的方法进行了搜索,结果没有发现特征字符串,我就怀疑是不是版本问题。于是我找了一个自己酷狗的版本信息,果然……(新手的毛病)。暂时无头绪,百度大神去……(酷狗7去广告,结果第一条的搜索结果的是:可以修改资源文件,SkinRes.skn,这个文件本质是一个zip文件,通过修改里面的SkinResDef.xml文件可以达到去广告的目的……)。
于是自己赶紧找到酷狗7装目录下的SkinRes.skn文件,


一打开文件,居然要密码,(密码是通过网络传输还是写在程序的变量中呢?),带着这个疑问,开始逆程序。
首先第一步,用PEiD查壳,

结果什么都没发现。。。长叹一口气,(去壳俺不懂啊
既然程序布局是保存在文件里面的,那么就从CreateFile处开始设断点吧。查一下模块间调用,哇,这么多……

没办法,全部设断点,一个个找。于是,一路F9过去,跟了老半天,终于看到一个熟悉的路径D:\Program Files\KuGou7\SkinRes.skn,(离目标貌似近了一步…………)继续F7。迷茫了……有没有头绪了,除了一些字符串处理以及一些看不懂处理过程,似乎不对头了,(再跟几分钟,没戏就换条路……

有希望!!!!我找到了一个函数:

WideCharToMultiByte,这个函数主要是用来把宽字符转换为ASC字符的,使用宽字符的原因应该是增加程序的移植性吧(和unicode有关的)。我已经在代码里面注释了,这个函数先是计算目标字串的长度,然后申请BUF在进行转换的。(看到自己熟悉的函数,有点激动……
而且转换的参数就是刚才那个路径:

继续F7……
来到了一个函数里面,而且在OD的注释栏里面标注着那个ASC:"SkinResDef.xml"(貌似离目标又近了……

(先别激动,继续走),对于当前这个函数,但凡看到一个像地址的,我都会用命令去查看其内容。当跟到那个标注"SkinResDef.xml"没过多久,就在一个函数返回的地址里面看到了熟悉的xml内容:而且我把那些内容复制到一个新的文件里面,其大小和压缩软件的大小是一样的124.1KB,(没错了,就是那个布局文件,既然现在已经出现了明文内容,那么解密处理也许就在前面不远处)

于是我在前面的代码设了断点,重新运行程序,就在跟到那个字符串没多远的地方的一个函数里面,在压栈的参数里面看到了一个字符串:

拿去试试,看是不是密钥,……,当我把那串字符串复制到密码框,点确定以后,顿时我激动了!!没错,这就是密钥。
修改完资源文件后,酷狗的广告果然看不到了。(图我就不贴了,就长那样……想象一下)
新手上路,若有错误,欢迎拍砖。