Sunday, September 27, 2009

屏蔽千千静听广告

当千千静听右下角也出现flash广告的时候,这个世界都变得不能忍了。
exescope看了一圈,没有发现有用的
ollydbg载入主程序,查找资源,发现

http://ttmsg.qianqian.com/msg.php?%s&id=%s

自己打开看看。。。
然后再看看http://ttmsg.qianqian.com/include/login.php

很简单地,把ttmsg.qianqian.com加个hosts,应该就好了。

Monday, September 21, 2009

找到了MySQL WorkBench 启用收费版功能的方法

偶然的发现吧。
heqian来屋里,不记得聊啥,就聊到了mysql workbench的破解上。
顺道看了看mysql workbench。
之前用这个尝试过设计数据库,但是最后还是放弃了,换而用mysql administrator自己一张一张建表。
5.0的时候,看到mwb里有很多功能,前边标了 SE ,但是没法用,因为用的是OSS版。

于是刚才注意了一下以前的安装目录,发现一个data目录,下边一堆xml文件,在其中搜了一个SE标记了的菜单名称,居然发现,main_menu.xml 中,SE和非SE完全在于id属性中是否以 /SE 结尾。

尝试修改去掉了所有 /SE,于是所有功能可用。

升级到 mwb 5.1,一样,不过这次,/SE的菜单在这个版本里不显示。


这个不算是破解 :x

Friday, September 18, 2009

在DH上写了一个blogger资源的代理

DHProxy
很无聊得用 ErrorDocument 做了转向,然后根据REQUEST_URI处理转发参数。

试试 http://t.sskaje.name/b/start?pli=1
/b/ 对 www.blogger.com 的http数据进行里转发

稍微地加了点缓存机制


然看这里 : http://t.sskaje.name/t/sskaje

不过这个数据缓存有点长,所以甭想当web代理用,嘿嘿

只为静态资源,不为过墙。

Tuesday, September 15, 2009

手工去掉了MSN界面的广告

用过msnshell 和 msg plus 这两个插件,选用前者的原因是去广告,选用后者的原因是功能增强。但是曾经试图两个同时装,结果很多msgplsu的特性都被msnshell屏蔽了,很是恶心。
新版本的live messenger + msnshell 用过一段时间,却发现,msnshell并不是把主界面广告条隐藏了,而是把显示的位置调整了,使得广告在主界面上看不出来,但是偶尔的时候却能看到上边几个像素的内容,很是不爽。
最终决定把msnshell卸了,忍了一段时间的广告,赶着昨天live messenger有更新(今天baidu hi也更新了,msn的支持也没了,唔。。。),索性今天来尝试自己去广告。
基本思路还是走资源。
拿exeScope看了live messenger目录下的所有dll和exe,没有直接找到相关的内容。于是上网查了查,看到了这个:http://hi.baidu.com/fzu728/blog/item/780e7cf40bbccedff2d3851e.html。
但是这里给的东西,并没有找到。

重新看了看资源,发现msgsres.dll的数字开头的部分,很多都是UIB头的文件。
换用resource hacker,一样。
上网搜了搜 uib file decode,发现了这几个东西:
http://www.msghelp.net/showthread.php?tid=88339&pid=945754
http://forums.fanatic.net.nz/index.php?showtopic=19541
http://dotnetwizard.net/live/messenger-plus-live-for-wlm-2009-final/

注意了下msgplus的目录,的确有个 MPTools.exe,但是不能直接运行。
稍微注意了下,这个文件是msg plus在msn里的选项工具。
于是在 msg plus 选项里找了找,看到了皮肤设计的部分,最下边有一个解压资源,一个文档。
点击文档,看到了 Specialized Subjects 下的 Encoding and Decoding UIB
正是我想要的。

Here is an example of how to decode a UIB file:
MPTools.exe /UIB=Decode /Src="C:\uibfile.uib" /Def="C:\deffile.txt" /Style="C:\stylefile.txt"
And here is another example of how to re-create a UIB file:
MPTools.exe /UIB=Encode /Def="C:\deffile.txt" /Style="C:\stylefile.txt" /Dest="C:\uibfile.txt"

于是首先用 resource hacker把所有的资源导出来。
发现导出目录里一堆Data_***.bin的文件
用vs08 打开.rc文件,看到了一些关系对应。

直接用emeditor 打开,根据第一个链接里的几个关键词SSConstrainer, adbannercont
定位了两个文件,Data_1274.bin 和 Data_1277.bin
解压资源
C:\Documents and Settings\Administrator\Desktop\msgres>"\Program Files\Messenger Plus! Live\MPTools.exe" /UIB=Decode /Src=Data_1274.bin /Def=1274.def.txt /Style=1274.style.txt

C:\Documents and Settings\Administrator\Desktop\msgres>"\Program Files\Messenger Plus! Live\MPTools.exe" /UIB=Decode /Src=Data_1277.bin /Def=1277.def.txt /Style=1277.style.txt

Emeditor打开两个def文件,找到了想要的东西
如第一个链接的内容
1、去掉主窗口下的广告
用Restorator打开msgsres.dll中的4004-923,查找里面的"ID=Atom(SSConstrainer)",不包括两头双引号,将前面的layoutpos=top改为layoutpos=none

2、去掉聊天窗口下的文字广告
在4004 - 920里
找到: element id=atom(adbannercont) layout=filllayout()
改为: element id=atom(adbannercont) layoutpos=none
不过,第一个在 4010:923 Data_1277.bin 对应的文件里,第二个在 4010:920 Data_1274.bin 里
按文章说明直接改,保存,然后重新Encode代码

C:\Documents and Settings\Administrator\Desktop\msgres>"\Program Files\Messenger Plus! Live\MPTools.exe" /UIB=Encode /Def=1274.def.txt /Style=1274.style.txt /Dest=Data_1274.new.bin

C:\Documents and Settings\Administrator\Desktop\msgres>"\Program Files\Messenger Plus! Live\MPTools.exe" /UIB=Encode /Def=1277.def.txt /Style=1277.style.txt /Dest=Data_1277.new.bin

打开刚才的resource hacker的窗口,选择菜单栏的 “Action”,“Replace other resource...”,
“Open File with New Resource...”选择文件,上边保存的是 Data_1274.new.bin 和 Data_1277.new.bin,这两个得和下边的Resource Name对应起来,对应关系往上看。
“Resource Type”:输入 4010
“Resource Name”:输入 920 (923)
“Resource Language”:我用的是英文版的 live messenger,所以是1033,中文的应该是2052
然后 Replace, 保存dll就行

当然,修改的过程无所谓,但是保存的时候,一定要把msn 关掉,或者你另存为,然后关msn,自己替换也行。
反正现在我的主窗口和聊天窗口下方的广告栏已经没了。

# EOF

Tuesday, September 8, 2009

腾讯TT教育网加速代理验证成功

写了个简单的php脚本,patch了webacc.exe,改了端口,去掉了进程检测。
<?php
$file = $_SERVER['argv'][1];
if (!file_exists($file)) {
 die('file not exists');
} else {
 $data = file_get_contents($file);
 $data = str_replace("\x91\x1f", "\xA1\x46", $data);
 $data = str_replace("\x92\x1f", "\xA2\x46", $data);
 $data = str_replace("\xE8\x10\x03\x00\x00", "\xB8\x01\x00\x00\x00", $data);
 file_put_contents($file.'.bak', $data);
}
vpn进学校,把服务跑在了16.4上,没有去改IP,有需要的另说吧
本地开端口
D:\>netstat -ano | find "3732"
  TCP    127.0.0.1:18081        0.0.0.0:0              LISTENING       3732
  TCP    127.0.0.1:18082        0.0.0.0:0              LISTENING       3732
直接连接本地的代理, localhost:18081
访问页面成功。
直接访问ip138,提示的是211.68段的教育网IP;
访问www.who.is,显示的是 Your IP is 211.68.2.18, 124.115.2.21
124.115.2.21 在ip138上查得是陕西电信的ip。
who.is这个站已经是在国外了,肯定不是免费模式能直接访问的。
测试了一下 www.hackthissite.org,成功。

注意了一下 netstat 的情况
D:\>netstat -ano | find "3732"
  TCP    10.1.16.4:3941         59.74.42.153:8080      ESTABLISHED     3732
  TCP    10.1.16.4:3944         59.74.42.153:8080      ESTABLISHED     3732
  TCP    10.1.16.4:3947         59.74.42.153:8080      ESTABLISHED     3732
  TCP    10.1.16.4:3948         59.74.42.153:8080      ESTABLISHED     3732
  TCP    10.1.16.4:3949         59.74.42.153:8080      ESTABLISHED     3732
  TCP    127.0.0.1:18081        0.0.0.0:0              LISTENING       3732
  TCP    127.0.0.1:18081        127.0.0.1:3940         ESTABLISHED     3732
  TCP    127.0.0.1:18081        127.0.0.1:3942         ESTABLISHED     3732
  TCP    127.0.0.1:18081        127.0.0.1:3943         ESTABLISHED     3732
  TCP    127.0.0.1:18081        127.0.0.1:3945         ESTABLISHED     3732
  TCP    127.0.0.1:18081        127.0.0.1:3946         ESTABLISHED     3732
  TCP    127.0.0.1:18082        0.0.0.0:0              LISTENING       3732
59.74.42.153 这个是解析出来的 edu_acc_userinfo.qq.com 的IP,正是昨天从od里看到的
直接访问这个ip的端口,能打开,设成代理,可用。

============================
刚才折腾了会儿,因为16.4打开那个端口没有任何返回,感觉不像是http协议
然后wireshark抓包分析,确认了,再试,结果就可以了
诡异啊

Monday, September 7, 2009

对腾讯TT代理webacc.exe的简单分析

联盟上domi发帖问“有没有对TT的教育网加速有兴趣的”
不想装软件,所以只是留了个邮箱,但是一直都没有人回复。

下了个tt,直接7zip解压,对出来的资源里的 [0] 再次用7zip解压,于是二进制文件资源拿到了

PEiD看了看\bin\webacc.exe,没有查出任何信息,从图标看,先是一个vs03以后的二进制文件默认图标,而且目录下还有vs8的runtime

OllyDBG载入。刚才PEiD没有任何信息,同样,这里看也没有加壳,直接查找资源,找到了127.0.0.1的字样,两处。
domi帖子里提到开的端口也是8081,直接转成16进制,1F91,搜常量
就在两个127.0.0.1的下边,就有 1F91 和 1F92 ,8081和8082 。。。

帖子里还提到,“进程里面只要有个叫TTraveler.exe的就可以用webacc.exe”
hmm, 再次搜索字符串资源,找到一个ttraveler.exe的,然后还有个 edu_acc_userinfo.qq.com 的字样。
还有个 %d.%d.%d.%d 显然是拼接ip,下边有个sprintf,上边有个 gethostbyname, 猜测可能是本地解析域名,然后以传参或者直接host的方式走代理吧。

暂时不管运作原理,先搞定进程检测的问题。
进入ttraveler.exe的地方。
直接下了个断点,但是貌似有反调试的部分,刚才od挂起时间有点长。重启,杀掉了sogou的进程

从 00401aa0开始的地方,是取出了进程列表,然后逐个比较进程名,看看有没有tt主进程的名称。
00401B0C   .  8D8424 201000>LEA EAX,DWORD PTR SS:[ESP+1020]
00401B13 > 68 A8834000 PUSH webacc.004083A8 ; ttraveler.exe
00401B18 . 50 PUSH EAX
00401B19 . FFD3 CALL EBX

这里进行了比较
在call之前断下来,一个一个看进程,看看哪个好改,突然发现了tsvncache.exe,长度一致,方便
直接 d eax,然后改内存。

在 代码结束之后,返回到上一级
0040160B   > \E8 10030000   CALL webacc.00401920
00401610 . 85C0 TEST EAX,EAX
00401612 . 74 07 JE SHORT webacc.0040161B
00401614 . E8 17000000 CALL webacc.00401630
00401619 .^ EB D6 JMP SHORT webacc.004015F1
0040161B > 6A 00 PUSH 0 ; /ExitCode = 0
0040161D . FF15 04804000 CALL DWORD PTR DS:[<&KERNEL32.ExitProces>; \ExitProcess

test eax, eax,然后je到了退出的地方。
于是测试一下00401612 : je -> jne
下个断点,重来。
上边的一个jmp回跳,应该是定时检查,没细看。
直接改动看看。
C:\Documents and Settings\Administrator>netstat -ano |find "8081"
TCP 127.0.0.1:8081 0.0.0.0:0 LISTENING 1028

C:\Documents and Settings\Administrator>netstat -ano |find "1028"
TCP 127.0.0.1:8081 0.0.0.0:0 LISTENING 1028
TCP 127.0.0.1:8082 0.0.0.0:0 LISTENING 1028


端口开了。基本可以认为进程检测过掉了,
测试浏览效果。
唔,不行,是一个squid的403页面。估计还是缺少什么头。
等啥时候弄一台机器有tt的,抓包试试吧。
基本改动的思路差不多了

不过,可以试试对刚才的进程检测的地方,直接把call改成mov eax, 1
再测试一下
C:\Documents and Settings\Administrator>netstat -ano |find "4136"
TCP 127.0.0.1:8081 0.0.0.0:0 LISTENING 4136
TCP 127.0.0.1:8082 0.0.0.0:0 LISTENING 4136


好吧,我试试改改端口。

我把 8081, 8082 改成 18081,18082,也就是46A1和46A2
0040559A  |.  66:C74424 48 >MOV WORD PTR SS:[ESP+48],1F91

004055B3  |.  66:C74424 48 >MOV WORD PTR SS:[ESP+48],1F92


C:\Documents and Settings\Administrator>netstat -ano |find "5192"
TCP 127.0.0.1:18081 0.0.0.0:0 LISTENING 5192
TCP 127.0.0.1:18082 0.0.0.0:0 LISTENING 5192



好吧,就这样吧
具体代理协议的验证细节,以后再说吧。

对端口的修改,请使用16进制编辑器,搜索 91 1f 和 92 1f,按你的需求改吧。(offset 0x559F, 0x55B8)

如果你愿意研究验证的部分,搜索 E8 10 03 00 00 改成 B8 01 00 00 00,就实现了刚才提到的call -> mov (offset 0x160a)
或者 je -> jnz 把紧下边的 74 07 改成 75 07 (offset 0x1612)

另外,我的webacc.exe 99656字节。