我的淘宝 快乐岛主外挂的制作经历

来源:互联网 发布:java web nodejs web 编辑:程序博客网 时间:2024/05/02 01:20

在编这个外挂中遇到的问题主要
1、是淘宝的自动登录问题,
2、淘宝的应用上下文协议的问题
3、HTTPONLY使PHPSESSID为只读造成无法通过TWebBrowser获得
4、这个应用的authid的获得
5、这个应用有些API的调用会需要时间戳,而且它的时间是带毫秒的。
6、JSON的操作问题。
7、数据传递的格式问题

以下代码片断为Delphi所写
对于第一个首先访问
'http://login.taobao.com/member/login.jhtml?style=miniall&from=jianghu&tpl_redirect_url=http%3A%2F%2Fjianghu.taobao.com%2Fadmin%2Fplugin.htm%3Fappkey%3D12029234%26tracelog%3Djhleftmenu
在这个页面找'_tb_token_'这个值,然后制作POST数据

    post.Add('TPL_username='+user);
    post.Add('TPL_password='+pwd);
    post.Add('_tb_token_='+token);
    post.Add('action=Authenticator');
    post.Add('event_submit_do_login=anything');
    post.Add('TPL_redirect_url=http://jianghu.taobao.com/admin/plugin.htm?appkey=12029234&tracelog=jhleftmenu');
    post.Add('from=jianghu');
    post.Add('fc=2');
    post.Add('style=miniall');
    post.Add('tid=');
    post.Add('support=000001');
    post.Add('CtrlVersion=1,0,0,7');
    post.Add('loginType=3');
    post.Add('minititle=');
    post.Add('minipara=');
    post.Add('pstrong=2');
    post.Add('longLogin=1');         //1为选择两周内不需要重复登录 0为不选
    post.Add('llnick=');
    post.Add('sign=');
    post.Add('need_sign=');
    post.Add('isIgnore=');
    post.Add('popid=');
    post.Add('callback=');
    post.Add('not_duplite_str=');
    post.Add('need_user_id=');
    post.Add('from_encoding=');
通过IDHTTP控件发送POST到'http://login.taobao.com/member/login.jhtml'来实现自动登录

 

对于第二个问题由于解析它的格式太困难甚至于无法完成(因为它需要app_secret,而这个值是由淘宝给应用申请者的私钥,所以很难获得)
但是由于浏览器它能访问,所以我就去找它是如何实现的,最终在访问http://container.api.taobao.com/container?appkey=12029234&tracelog=jhleftmenu时,在它的HEADER中发现了Location:http://island.hapyfish.com/?top_appkey=12029234&top_parameters=************************************&top_session=********************&top_sign=**************************&tracelog=jhleftmenu(由于这里能算出我的ID,所以被以星号给替换了)。
固我们也可以首先访问http://container.api.taobao.com/container?appkey=12029234&tracelog=jhleftmenu得到Location并跳转,来实现它的应用上下文协议的问题

 

对于第三个问题由于无法通过TWebBrowser来获得那就用Indy公司的TIDHTTP来实现

 

对于第四个问题可以通过下载它的SWF文件利用Sothink SWF Decompiler来反编译获得它的取值方式

 

对于第五个问题可以利用DateUtils中的DateTimeToUnix来实现,由于它返回的数据不带毫秒,所以再随机加三位数字就可以了

 

对于第六个问题在http://www.json.org/的最下面提供了很多编程语言的JSON实现库,我在这里选择的是superobjectv1.2.4

 

对于第七个问题我使用的是FireFox+HttpFox来监测的 

原创粉丝点击