百度登陆抓包

百度用户登陆前需要有一个cookie post包有一个token

获取cookie

[c]

http://hi.baidu.com/go/login

GET /go/login HTTP/1.1
Host: hi.baidu.com
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:18.0) Gecko/20100101 Firefox/18.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive

HTTP/1.1 200 OK
Set-Cookie: BAIDUID=74D32C345548385F4A8B60F57384375A:FG=1; max-age=31536000; expires=Wed, 15-Jan-14 11:51:37 GMT; domain=.baidu.com; path=/; version=1
P3P: CP=" OTI DSP COR IVA OUR IND COM "
Content-Type: text/html
Vary: Accept-Encoding
Content-Encoding: gzip
Transfer-Encoding: chunked
Connection: close
Date: Tue, 15 Jan 2013 11:51:37 GMT
Server: apache

[/c]

用上次取的cookie 提交https://passport.baidu.com/v2/api/?getapi&class=login&tpl=qing 获取 token 在返回包的body里面没有在返回头中

自己提取

[c]

https://passport.baidu.com/v2/api/?getapi&class=login&tpl=qing

GET /v2/api/?getapi&class=login&tpl=qing HTTP/1.1
Host: passport.baidu.com
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:18.0) Gecko/20100101 Firefox/18.0
Accept: */*
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://hi.baidu.com/go/login
Cookie: BAIDUID=74D32C345548385F4A8B60F57384375A:FG=1
Connection: keep-alive

HTTP/1.1 200 OK
Content-Type: text/html
Vary: Accept-Encoding
Content-Encoding: gzip
Date: Tue, 15 Jan 2013 11:51:37 GMT
Server: lighttpd
Content-Length: 240

[/c]

将获取的前两前post包加上用户名密码可以成功登陆 这是没有验证码的情况 有验证码的情况我还没有遇到

[c]

https://passport.baidu.com/v2/api/?login

POST /v2/api/?login HTTP/1.1
Host: passport.baidu.com
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:18.0) Gecko/20100101 Firefox/18.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://hi.baidu.com/go/login
Cookie: BAIDUID=74D32C345548385F4A8B60F57384375A:FG=1
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 339
charset=UTF-8&codestring=&token=64439d81b5f6c7a63096b247ee3a66e2&isPhone=false&index=0&u=http%3A%2F%2Fhi.baidu.com%2Fgo%2Flogin%3Ffrom_page%3D101%26from_mod%3D0&safeflag=0&staticpage=http%3A%2F%2Fhi.baidu.com%2Fcom%2Fshow%2Fproxy%3Ffun%3Dcallback.login.submited&loginType=1&tpl=qing&username=帐号&password=密码&verifycode=&mem_pass=on
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
P3P: CP=" OTI DSP COR IVA OUR IND COM "
/********************set cookies部分 强势打码*************************/

domain=passport.baidu.com
Content-Type: text/html
Vary: Accept-Encoding
Content-Encoding: gzip
Date: Tue, 15 Jan 2013 11:51:55 GMT
Server: lighttpd
Content-Length: 619

[/c]

剩下的就是你想干什么就想干什么了 呵呵 你懂的

WordPress 上传文件自动形成在线文档

有时候在wordpress里面上传附件需要自动的将文档直接展示出来,就像百度文档flash那样可以直接立刻而不需要下载附件,经过一阵研究,借助google,不得不感染google的强大。php现学现用 花了些时间终于完成了功能,还继续完善某类的文件类型判断,这问题不大了直接上代码

继续完善了一下扩展名的问题 只对一下的文档扩展名的进行了自动展示,如果清空有别的手动添加就可以了 再次修正因多次编辑修改造成重复的问题

不得不感叹php功能还是很完美的各种函数都有 c语言就像写一大串 哈哈

把下面的代码 添加在 wp-admin/post.php 就可以了

[php]
$name = array(‘ppt’,’pptx’,’doc’,’docx’,’xls’,’xlsx’,’txt’,’pdf’,’rtf’,’wps’,’swf’,’htm’,’html’);
$str = $_POST[‘content’];
$google1 = ‘<iframe style="border: none;" src="http://docs.google.com/viewer?url=’;
$google2 = ‘&amp;embedded=true" width="600" height="780"></iframe>’;
$pat = ‘/<a(.*?)href=\\\"(.*?)\\\"(.*?)>(.*?)<\/a>/i’;

if(strpos($str,’docs.google.com’) === false){

preg_match_all($pat, $str, $m);
for($i = 0; $i < count($m[2]);$i++)
{
$tmp = $m[0][$i].$google1.$m[2][$i].$google2;
$extension = pathinfo($m[2][$i], PATHINFO_EXTENSION);
if(in_array($extension,$name))
{
$str =  str_replace($m[0][$i],$tmp,$str,$cnt);
}
}
$_POST[‘content’] = $str;
}
[/php]

创先争优 党课答辩

各位老师、同学们,大家晚上好!我来自第八小组,我叫xxx,12级研究生,今天我答辩的题目是对党员创先争优活动的认识。Next page.
下面我将从概念、具体要求以及从我自身的感受三个方面谈一下对做好党员争先创优活动的见解和认识。Nex page.
首先,什么是党员创先争优活动。创先争优”活动,即创建先进基层党组织,争做优秀共产党员活动。在我看来,先是一种理念,优是一种习惯,创先争优就是在一种先进的理念引导下养成一种良好习惯的过程。一个人有了先进的理念和良好的习惯,一定能成为品质超群的人;一个集体拥有这种信念,必定是个先进的集体;一个党拥有了这样的一群人,必定是一个伟大的党。Next page.
我认为创先争优活动有以下具体的四方面要求。1,要有良好的精神状态。在我看来,精神决定风貌,健康的精神充满斗志,能让人勇气倍增2. 要有新的观念 ,观念是行动的先导。先进的观念与与时俱进的思想,会引导我们向前。3. 要有艰苦奋斗的作风,大到一个国家、一个民族,具体到一个单位,一个人,如果不艰苦奋斗,只想在已有的成果上坐享其成,就会坐吃山空,这样注定任何事业都是没有希望的。4。要有开拓创新的胆略。 勇于创新,事业就会前进;怯于创新,发展就会停滞。Next page.
最后我结合自身情况谈一下我的感想。我现在研究生一年级,进校前有一年多的工作时间,我先来讲一下我自己学习和工作的不同的感受。学习和工作各有好处,上学的时渴望工作,工作后又羡慕校园的生活。做为一名学生,最大的优点是自由,自己可支配的时间充足。另外读书的时候,如果我们某个实验或者论文做得不好,老师可以原谅我们,我们来读书是一种学习,从不会到会的学习,因此,老师反而会耐心指导我们。工作相对学习来说紧迫感和时间上更紧张,尤其做为一名程序员,在工作中不仅包含学习,更包含责任和义务,要更多地考虑大家的利益,不能因为自己的原因导致整个“生产线”暂停,压力会更大一些,但是工作的时候财务相对自由,这是工作的最大好处。现在我又做为一名学生,心中又开始怀念上班的那种生活,这就是所谓的围城吧。总之,最大的感受就是无论是学习还是工作,都要看你以什么样的心态对待。态度决定一切,一个人对待工作的心态,是积极的还是消极的,是上进的还是无所谓的,直接影响学习和工作的质量。有一个积极上进的态度,同样也是开展创先争优活动的直接要求,工作也好学习也好,都要以认真的态度去做好现阶段的最关键事情,这同样是一名优秀的共产党员应该要做到的。
Nexpage
以上是我对创先争优的一些认识,谢谢大家。

vim的配置 c/c++

let g:neocomplcache_enable_at_startup = 1
runtime! debian.vim
“ÉÖ±à
set encoding=utf-8
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
set fileencodings=utf-8,ucs-bom,chinese

“ÓÑÉÖ
set langmenu=zh_CN.UTF-8

“ÉÖÓ·¨¸ßÁsyntax enable
syntax on

“ÉÖÅɫ·½°¸
“colorscheme torte

“¿ÉÔÚufferµÄκεط½ʹÓʱêet mouse=a
set selection=exclusive
set selectmode=mouse,key

“¸ßÁÔ¾ƥŵĨºÅset showmatch

“ȥµô»ÖÐ
set nocompatible

“ÉÖ˽ø tabstop=4
set softtabstop=4
set shiftwidth=4
set autoindent
set cindent
if &term==”xterm”
set t_Co=8
set t_Sb=^[[4%dm
set t_Sf=^[[3%dm
endif

“´òļþÀÐ׶¯¼ì¹¦Ä
filetype on

“ÉÖtaglist
let Tlist_Show_One_File=0 “Ïʾ¶àμþµÄags
let Tlist_File_Fold_Auto_Close=1 “·ǵ±ǰμþ£¬º¯ÊÁ±íµþÒ²Ølet Tlist_Exit_OnlyWindow=1 “ÔtaglistÊ׺ó�ڱͳö
let Tlist_Use_SingleClick=1 “µ¥»÷øet Tlist_GainFocus_On_ToggleOpen=1 “´òaglistʱ»ñä½¹µãet Tlist_Process_File_Always=1 “²»¹Üaglist´°¿ÚǷñª£¬ʼÖ½âμþÖµÄag

“ÉÖWinManager²å
let g:winManagerWindowLayout=’FileExplorer|TagList’
nmap wm :WMToggle
map :WMToggle “½«F9°óÁinManager,¼´´òimManager

“ÉÖCSCOPE
set cscopequickfix=s-,c-,d-,i-,t-,e- “ɶ¨Ê·ñÃuickfix´°¿ÚÔ¾cscope½á

“ÉÖGrep²å
nnoremap :Grep

“ÉÖһ¼ümap :make

“ÉÖ׶¯²¹ȫ
filetype plugin indent on “´òļþÀмì
set completeopt=longest,menu “¹صôܲ¹ȫʱµÄ¤À´°¿Ú
“ƶ¯vimʱȹûtagsÔ׶¯¼ÓØif exists(“tags”)
set tags=./tags

“ÉÖ°´F12¾͸üsµķ½·¨
map :call Do_CsTag()
nmap s :cs find s =expand(““):copen
nmap g :cs find g =expand(““)
nmap c :cs find c =expand(““):copen
nmap t :cs find t =expand(““):copen
nmap e :cs find e =expand(““):copen
nmap f :cs find f =expand(““):copen
nmap i :cs find i ^=expand(““)$:copen
nmap d :cs find d =expand(““):copen
function Do_CsTag()
let dir = getcwd()
if filereadable(“tags”)
if(g:iswindows==1)
let tagsdeleted=delete(dir.”\\”.”tags”)
else
let tagsdeleted=delete(“./”.”tags”)
endif
if(tagsdeleted!=0)
echohl WarningMsg | echo “Fail to do tags! I cannot delete the tags” | echohl None
return
endif
endif

if has(“cscope”)
silent! execute “cs kill -1”
endif

if filereadable(“cscope.files”)
if(g:iswindows==1)
let csfilesdeleted=delete(dir.”\\”.”cscope.files”)
else
let csfilesdeleted=delete(“./”.”cscope.files”)
endif
if(csfilesdeleted!=0)
echohl WarningMsg | echo “Fail to do cscope! I cannot delete the cscope.files” | echohl None
return
endif
endif

if filereadable(“cscope.out”)
if(g:iswindows==1)
let csoutdeleted=delete(dir.”\\”.”cscope.out”)
else
let csoutdeleted=delete(“./”.”cscope.out”)
endif
if(csoutdeleted!=0)
echohl WarningMsg | echo “Fail to do cscope! I cannot delete the cscope.out” | echohl None
return
endif
endif

if(executable(‘ctags’))
“silent! execute “!ctags -R –c-types=+p –fields=+S *”
silent! execute “!ctags -R –c++-kinds=+p –fields=+iaS –extra=+q .”
endif

if(executable(‘cscope’) && has(“cscope”) )
if(g:iswindows!=1)
silent! execute “!find . -name ‘*.h’ -o -name ‘*.c’ -o -name ‘*.cpp’ -o -name ‘*.java’ -o -name ‘*.cs’ > cscope.files”
else
silent! execute “!dir /s/b *.c,*.cpp,*.h,*.java,*.cs >> cscope.files”
endif
silent! execute “!cscope -b”
execute “normal :”

if filereadable(“cscope.out”)
execute “cs add cscope.out”
endif
endif
endfunction

“ÉÖĬÈshell
set shell=bash

“ÉÖVIM¼Ç¼µÄú
set history=400

“ÉÖµ±Î¼þ±»Í²¿¸ıäʱºî¶¯¶Áë¼þ
if exists(“&autoread”)
set autoread
endif

“ÉÖambiwidth
set ambiwidth=double

“ÉÖμþÀÐ
set ffs=unix,dos,mac

“ÉÖÔËËģʽ
set incsearch

“ÉÖ¾²Òģʽ
set noerrorbells
set novisualbell
set t_vb=

“²»Ҫ±¸·Ýļþ
“”set nobackup
“”set nowb
:inoremap ( ()i
:inoremap ) =ClosePair(‘)’)
:inoremap { {}O
:inoremap } =ClosePair(‘}’)
:inoremap [ []i
:inoremap ] =ClosePair(‘]’)
:inoremap ” “”i
:inoremap ‘ ”i
:inoremap < <>i

function ClosePair(char)
if getline(‘.’)[col(‘.’) – 1] == a:char
return “\
else
return a:char
endfunction

linux s prot scan

[c]/
TCP Syn port scanner
By:sincoder
Blog:[url]www.sincoder.com[/url]
*/

#include <stdio.h> //printf
#include <string.h> //memset
#include <stdlib.h> //for exit(0);
#include <sys/socket.h>
#include <errno.h> //For errno – the error number
#include <pthread.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <netdb.h>    //hostend
#include <arpa/inet.h>
#include <netinet/tcp.h>    //Provides declarations for tcp header
#include <netinet/ip.h>    //Provides declarations for ip header
#define  msg(fmt,arg…) printf(fmt,##arg);fflush(stdout)

const char *logFileName = "Result.txt";
int log_fd = 0;  // for log
int bIsLogRet = 0 ;//is log scan result
uint32_t g_bind_ip = 0; // 绑定的本地ip
uint8_t g_port_list[0xFFFF] = {0}; //要扫描的端口相应的位会被置1
volatile int g_IsTimeToShutDown = 0;

enum IpSingType
{
    IP_TYPE_RANGE,
    IP_TYPE_SINGLE
};

typedef struct _IPSting
{
    enum IpSingType type;
    uint32_t start_ip;
    uint32_t end_ip;
}IPString;

IPString *g_ScanIpList = NULL;
uint32_t  g_IpCount = 0;

#pragma pack(push,1)

typedef struct _ip_header
{
    unsigned char  h_lenver; //4位首部长度+4位IP版本号
    unsigned char  tos; //8位服务类型TOS
    unsigned short total_len; //16位总长度(字节)
    unsigned short ident; //16位标识
    unsigned short frag_and_flags; //3位标志位
    unsigned char  ttl; //8位生存时间 TTL
    unsigned char  proto; //8位协议 (TCP, UDP 或其他)
    unsigned short checksum; //16位IP首部校验和
    uint32_t   sourceIP; //32位源IP地址
    uint32_t   destIP; //32位目的IP地址
}IP_HEADER;

typedef struct _tcp_header //定义TCP首部
{
    unsigned short th_sport; //16位源端口
    unsigned short th_dport; //16位目的端口
    uint32_t   th_seq; //32位序列号
    uint32_t   th_ack; //32位确认号
    unsigned char  th_lenres; //4位首部长度/6位保留字
    unsigned char  th_flag; //6位标志位
    unsigned short th_win; //16位窗口大小
    unsigned short th_sum; //16位校验和
    unsigned short th_urp; //16位紧急数据偏移量
}TCP_HEADER;

typedef struct _psd_header //定义TCP伪首部
{
    unsigned long saddr; //源地址
    unsigned long daddr; //目的地址
    char mbz;
    char ptcl; //协议类型
    unsigned short tcpl; //TCP长度
}PSD_HEADER;

#pragma pack(pop)

/*
Get ip from domain name
*/
uint32_t hostname_to_ip(char * hostname)
{
    struct hostent *he;
    struct in_addr **addr_list;
    int i;
    //msg("%s:%s\n",__func__,hostname);
    if ( (he = gethostbyname( hostname ) ) == NULL)
    {
        // get the host info
        //herror("gethostbyname");
        //use inet_ntoa
        return inet_addr(hostname);
    }

addr_list = (struct in_addr **) he->h_addr_list;

for(i = 0; addr_list[i] != NULL; i++)
    {
        //Return the first one;
        return (*addr_list[i]).s_addr;
        //return inet_ntoa(*addr_list[i]) ;
    }
    return 0;
}

unsigned short checkSum(void * buffer, int size)
{
    unsigned long cksum=0;
    while (size >1) {
        cksum += *(unsigned short *)buffer;
        size -= sizeof(unsigned short);
        buffer = (char *)buffer + sizeof(unsigned short);
    }
    if (size) cksum += *(unsigned char*) buffer;
    cksum = (cksum >> 16) + (cksum&0xffff);
    cksum += (cksum >> 16);
    return (unsigned short) (~cksum);
}

int    buildSynPacket(char * buf, u_long saddr, u_long sport, u_long daddr, u_long dport)
{
    int    len = 0;
    IP_HEADER ip_header;
    TCP_HEADER tcp_header;
    PSD_HEADER psd_header;
    //填充IP首部
    ip_header.h_lenver=(4<<4 | sizeof(ip_header)/sizeof(unsigned long));
    //高四位IP版本号,低四位首部长度
    ip_header.total_len=htons(sizeof(IP_HEADER)+sizeof(TCP_HEADER)); //16位总长度(字节)
    ip_header.ident=1; //16位标识
    ip_header.frag_and_flags = 0; //3位标志位
    ip_header.ttl = 128; //8位生存时间TTL
    ip_header.proto = IPPROTO_TCP; //8位协议(TCP,UDP…)
    ip_header.checksum = 0; //16位IP首部校验和
    ip_header.sourceIP = saddr; //32位源IP地址
    ip_header.destIP = daddr; //32位目的IP地址

//填充TCP首部
    tcp_header.th_sport = sport; //源端口号
    tcp_header.th_lenres=(sizeof(TCP_HEADER)/4<<4|0); //TCP长度和保留位
    tcp_header.th_win = htons(0x4000);

//填充TCP伪首部(用于计算校验和,并不真正发送)
    psd_header.saddr=ip_header.sourceIP;
    psd_header.daddr=ip_header.destIP;
    psd_header.mbz=0;
    psd_header.ptcl=IPPROTO_TCP;
    psd_header.tcpl=htons(sizeof(tcp_header));

tcp_header.th_dport = dport; //目的端口号
    tcp_header.th_ack=0; //ACK序列号置为0
    tcp_header.th_flag=2; //SYN 标志
    tcp_header.th_seq = sport -1; //SYN序列号随机
    tcp_header.th_urp=0; //偏移
    tcp_header.th_sum=0; //校验和
    //计算TCP校验和,计算校验和时需要包括TCP pseudo header
    memcpy(buf,&psd_header,sizeof(psd_header));
    memcpy(buf+sizeof(psd_header),&tcp_header,sizeof(tcp_header));
    tcp_header.th_sum=checkSum(buf,sizeof(psd_header)+sizeof(tcp_header));

//计算IP校验和
    memcpy(buf,&ip_header,sizeof(ip_header));
    memcpy(buf+sizeof(ip_header),&tcp_header,sizeof(tcp_header));
    memset(buf+sizeof(ip_header)+sizeof(tcp_header),0,4);
    len=sizeof(ip_header)+sizeof(tcp_header);
    ip_header.checksum=checkSum(buf,len);

//填充发送缓冲区
    memcpy(buf,&ip_header,sizeof(ip_header));

return len;
}

const char *TakeOutStringByChar(const char *Source,char *Dest, int buflen, char ch)
{
    int i;

if(Source == NULL)
        return NULL;

const char *p = strchr(Source, ch);
    while(*Source == ‘ ‘)
        Source++;
    for(i=0; i<buflen && *(Source+i) && *(Source+i) != ch; i++)
    {
        Dest[i] = *(Source+i);
    }
    if(i == 0)
        return NULL;
    else
        Dest[i] = ‘\0’;

const char *lpret = p ? p+1 : Source+i;

while(Dest[i-1] == ‘ ‘ && i>0)
        Dest[i—1] = ‘\0’;

return lpret;
}

void InsertIntoIpList(enum IpSingType type,uint32_t start_ip,uint32_t end_ip)
{
//    msg("%s:%x %x\n",__func__,start_ip,end_ip);
    if(!g_ScanIpList)
    {
        g_ScanIpList = (IPString *)malloc(sizeof(IPString));
        g_ScanIpList->end_ip = end_ip;
        g_ScanIpList->start_ip = start_ip;
        g_ScanIpList->type = type;
        ++g_IpCount ;
        return ;
    }
    else
    {
        IPString *pTmp = (IPString *)malloc((g_IpCount + 1) * sizeof(IPString));
        memcpy(pTmp,g_ScanIpList,g_IpCount * sizeof(IPString));
        free(g_ScanIpList);
        g_ScanIpList = pTmp;
        g_ScanIpList[g_IpCount].end_ip = end_ip;
        g_ScanIpList[g_IpCount].start_ip = start_ip;
        g_ScanIpList[g_IpCount].type = type;
        ++g_IpCount;
        return;
    }
};

void DestoryIpList()
{
    free(g_ScanIpList);
    g_ScanIpList = NULL;
}

/*
典型的用法

uint32_t start = inet_addr("192.168.122.1");
  uint32_t end = inet_addr("192.168.123.122");
  uint32_t ip = start;
  do
  {
        msg("%s\n",inet_ntoa(*(struct in_addr *)&ip));

} while ((ip = GetNextIpInRange(ip,end)));
*/
uint32_t GetNextIpInRange(uint32_t start,uint32_t end)
{
    uint32_t pos = start;
    pos = htonl(start )+1;
    if(pos > htonl(end))
    {
        return 0;
    }
    pos = htonl(pos);
    return pos;
}

int  ParseIpString(const char *IpString)
{
    const char *p = IpString;
    char *slash = NULL;
    char buff[256];
    struct hostent * hostInfo ;

while((p = TakeOutStringByChar(p,buff,256,’,’)))
    {
        char startIpStr[256]={0};
        uint32_t start,end,range,submask;
        start = end = range = submask = 0;
        enum IpSingType type;
        //msg("%s  \n",buff);
        if((slash = strchr(buff,’/’))) //12.12.12.12/24
        {
            strncpy(startIpStr, buff, slash – buff );
            int bit = atoi(slash+1);
            range = 0xFFFFFFFF >> bit;
            submask = 0xFFFFFFFF << (32 – bit);
            uint32_t ip = hostname_to_ip(startIpStr);
            if(!ip)
                continue;
            start = (ip & ntohl(submask)) + ntohl(1);
            end = (ip & ntohl(submask)) + ntohl(range-1);
            type = IP_TYPE_RANGE;
        }
        else if((slash = strchr(buff,’-‘)))  //12.12.12.12 – 12.12.12.122
        {
            strncpy(startIpStr, buff, slash – buff );
            start = hostname_to_ip(startIpStr);
            end = hostname_to_ip(slash+1);
            type = IP_TYPE_RANGE;

}else //12.12.12.12
        {
            start = hostname_to_ip(buff);
            end = 0xFFFFFFFF;
            type = IP_TYPE_SINGLE;
        }
        if ((start || end) && (htonl(start) < htonl(end)))
        {
            InsertIntoIpList(type,start,end);
            //char endIpStr[256];
            //strcpy(endIpStr, inet_ntoa(*(struct in_addr *)&end));
            //strcpy(startIpStr, inet_ntoa(*(struct in_addr*)&start));
            //msg("start : %s end :%s \n",startIpStr,endIpStr);
        }
    }
}

void  GetNextScanIp(int (*callback)(uint32_t,void *),void *lparam)
{
    uint32_t idx;
    if(!g_ScanIpList)
    {
        msg("%s Ip list not init\n",__func__);
        return ;
    }
    for (idx = 0 ;idx < g_IpCount;idx ++)
    {
        switch(g_ScanIpList[idx].type)
        {
        case IP_TYPE_RANGE:
            {
                //msg("%s:%x %x\n",__func__,g_ScanIpList[idx].start_ip,g_ScanIpList[idx].end_ip);
                uint32_t ip = g_ScanIpList[idx].start_ip;
                do
                {
                    callback(ip,lparam);
                } while ((ip = GetNextIpInRange(ip,g_ScanIpList[idx].end_ip)));
            }
            break;
        case IP_TYPE_SINGLE:
            {
                callback(g_ScanIpList[idx].start_ip,lparam);
            }
            break;
        default:
            msg("%s:%s",__func__,"unknow ip type \n");
            break;
        }
    }
}

void ParsePortString(const char *ScanPortString)
{
    const char *p = ScanPortString;
    char buff[256];
    int idx;
    while((p = TakeOutStringByChar(p,buff,256,’,’)))
    {
        uint16_t start,end;
        char *slash = NULL;
        char port[64] = {0};
        if((slash = strchr(buff,’-‘)))  //122-1111
        {
            strncpy(port,buff, slash – buff );
            start = atoi(port);
            end = atoi(slash + 1);
            if(end < start)
            {
                continue;
            }
            for (idx = start;idx<=end;idx++)
            {
                g_port_list[idx] = 1;
            }
        }else
        {
            start = atoi(buff);
            g_port_list[start] = 1;
        }
    }
}

uint32_t  GetScanPortCount()
{
    int idx = 0 ;
    uint32_t count = 0 ;
    for (idx = 0 ;idx < 0xFFFF;idx++)
    {
        if(g_port_list[idx])
            ++count;
    }
    return count;
}

int help(char * app) //argc 3 4
{
    printf("Usage:   %s [Ip String] Ports [/Save]\n", app);
    printf("Example: %s 12.12.12.12-12.12.12.254 80\n", app);
    printf("Example: %s 12.12.12.12 1-65535\n", app);
    printf("Example: %s 12.12.12.12/24 1-65535\n", app);
    printf("Example: %s 12.12.12.12-12.12.12.254 21,80,3389\n", app);
    return printf("Example: %s 12.12.12.12,12.12.12.122 21,80,3389-22233  /Save\n", app);
}

/*
Method to sniff incoming packets and look for Ack replies
*/
void * receive_ack( void *ptr )
{
    //Start the sniffer thing
    start_sniffer();
}

void process_packet(unsigned char* buffer, int size)
{
    //Get the IP Header part of this packet
    char log_buff[256];
    int len = 0;
    IP_HEADER *iphdr = (IP_HEADER *)buffer;
    TCP_HEADER *tcphdr = NULL;
    struct sockaddr_in source,dest;

if(iphdr->proto = IPPROTO_TCP)
    {
        /* retireve the position of the tcp header */
        int ip_len = (iphdr->h_lenver & 0xf) * 4;
        tcphdr = (TCP_HEADER *) (buffer + ip_len);
        if(tcphdr->th_flag == 18)  //ACK+SYN
        {
            len = sprintf(log_buff,"%-16s%-8uOPEN                                           \n",inet_ntoa(*(struct in_addr *)&iphdr->sourceIP),ntohs(tcphdr->th_sport));
            if(bIsLogRet)
            {
                write(log_fd,log_buff,len);
            }
            msg("%s",log_buff);
        }
    }
}

int start_sniffer()
{
    int sock_raw = 0; // raw socket for sniff
    int saddr_size , data_size;
    struct sockaddr saddr;

unsigned char buffer[65536];// = (unsigned char *)malloc(65536); //Its Big!

//Create a raw socket that shall sniff
    sock_raw = socket(AF_INET , SOCK_RAW , IPPROTO_TCP);

if(sock_raw < 0)
    {
        printf("Socket Error\n");
        fflush(stdout);
        return 1;
    }

saddr_size = sizeof saddr;
    while(!g_IsTimeToShutDown)
    {
        //Receive a packet
        data_size = recvfrom(sock_raw , buffer , 65536 , 0 , &saddr , &saddr_size);
        if(data_size <0 )
        {
            msg("%s","Recvfrom error , failed to get packets\n");
            return 1;
        }
        //Now process the packet
        process_packet(buffer , data_size);
    }
    close(sock_raw);
//    msg("%s","Sniffer finished.");
    return 0;
}

uint32_t get_local_ip (uint32_t ip)
{
    char buffer[100];
    int sock = socket ( AF_INET, SOCK_DGRAM, 0);
    int dns_port = 53;
    int err;
    struct sockaddr_in serv;
    struct sockaddr_in name;
    socklen_t namelen = sizeof(name);
    //msg("%s:%s  \n",__func__,inet_ntoa(*(struct in_addr *)&ip));
    memset( &serv, 0, sizeof(serv));
    memset( &name, 0, sizeof(name));
    serv.sin_family = AF_INET;
    serv.sin_addr.s_addr = ip;//inet_addr(HostName);
    //memcpy(&serv.sin_addr.s_addr,&ip,4);
    serv.sin_port = htons( dns_port );
    err = connect( sock , (const struct sockaddr*) &serv , sizeof(serv) );
    err = getsockname(sock, (struct sockaddr*) &name, &namelen);
    //const char *p = inet_ntop(AF_INET, &name.sin_addr, buffer, 100);
    if(-1 == err)
    {
        msg("%s:%s",__func__,"getsockname failed\n");
    }
    close(sock);
    return name.sin_addr.s_addr;
}

int ip_callback(uint32_t ip,void *lparam)
{
    static uint32_t seed = 0x2b;
    uint32_t idx = 0;
    int len = 0;
    int s  = (int)lparam;
    struct sockaddr_in addr;
    char buff[0x100];
    addr.sin_family = AF_INET;
    addr.sin_addr.s_addr = ip;
    if(!g_bind_ip)
    {
        g_bind_ip = get_local_ip(ip);
        msg("bind on ip : %s \n",inet_ntoa(*(struct in_addr *)&g_bind_ip));
    }
    for (idx = 0 ; idx < 0xFFFF;idx ++)
    {
        if(g_port_list[idx])
        {
            addr.sin_port = htons(idx);
            msg("scanning %16s:%u\r",inet_ntoa(*(struct in_addr *)&ip),idx);
            srandom(seed++);
            len = buildSynPacket(buff,g_bind_ip,htons(random() % 0xFFFF),ip,addr.sin_port);
            if ( sendto (s,buff,len, 0 , (struct sockaddr *) &addr, sizeof (addr)) < 0)
            {
                 printf ("Error sending syn packet. Error number : %d . Error message : %s \n" , errno , strerror(errno));
                return 0;
            }
        }
    }
    return 1;
}

int main(int argc, char *argv[])
{
    int s;
    uint32_t ScanPortCount = 0;
    msg("%s","s syn port scanner\nBY:sincoder\nBlog:[url]www.sincoder.com[/url]\n");
    if(argc < 3 )
    {
        help(argv[0]);
        return -1;
    }
    ParseIpString(argv[1]);
    ParsePortString(argv[2]);
    ScanPortCount = GetScanPortCount();
    if(!ScanPortCount)
    {
        msg("%s","No Ports !!\n");
        return -1;
    }else
    {
        msg("About to scan %u ports\n",ScanPortCount);
    }
    if(argc == 4)
    {
        bIsLogRet = 1;
        log_fd = open(logFileName,O_RDWR|O_APPEND|O_CREAT,S_IRUSR|S_IWUSR);
        if(log_fd == -1)
        {
            msg("Can not create log file .\n");
        }
    }
    //Create a raw socket
    s = socket (AF_INET, SOCK_RAW , IPPROTO_TCP);
    if(s < 0)
    {
        msg("%s","Error creating socket. Error number : %d . Error message : %s \n" , errno , strerror(errno));
        return -1;
    }
    //IP_HDRINCL to tell the kernel that headers are included in the packet
    int one = 1;
    const int *val = &one;
    if (setsockopt (s, IPPROTO_IP, IP_HDRINCL, val, sizeof (one)) < 0)
    {
        printf ("Error setting IP_HDRINCL. Error number : %d . Error message : %s \n" , errno , strerror(errno));
        exit(0);
    }
    msg("%s","Starting sniffer thread…\n");
    pthread_t sniffer_thread;
    g_IsTimeToShutDown = 0;
    if( pthread_create( &sniffer_thread , NULL ,  receive_ack , NULL) < 0)
    {
        msg("%s","Could not create sniffer thread. Error number : %d . Error message : %s \n" , errno , strerror(errno));
        goto clean;
    }
    GetNextScanIp(ip_callback,(void *)s);
    sleep(2);
    g_IsTimeToShutDown = 1;
    ip_callback(g_bind_ip,(void *)s); //send a packet to myself ,let me exit ^_^
    msg("%s","scan over!!                             \n");
    pthread_join( sniffer_thread , NULL);
clean:
    DestoryIpList();
    if(bIsLogRet)
        close(log_fd);
    close(s);
    return 0;
}[/c]

入党申请书

入党申请书

敬爱的党组织:

今天我怀着无比激动的心情,决心用自己的实际行动接受党对我的考验,我郑重地向党提出入党申请。中国共产党是中国工人阶级的先锋队,同时是中国人民和中华民族的先锋队,是中国特色社会主义事业的领导核心,代表中国先进生产力的发展要求,代表中国先进文化的前进方向,代表中国最广大人民的根本利益。党的最高理想和最终目标是实现共产主义。我们党是伟大的党,是我们由中华民族优秀的先进分子所组成的,它代表着最广泛的人民利益,有着光荣革命传统的党,加入党组织是我为之努力奋斗的方向。

2012年,我作为一名新生走入华中科技大学是我的荣耀,又是华中科技大学建校60周年的日子,更是我的光荣。60年来,秉承“明德厚学、求是创新”的校训,团结拼搏,实干进取,形成了鲜明的办学特色和优良的校风学风,跻身中国高等教育第一方阵,为中国高等教育事业发展作出了巨大贡献。华中科技大学是新中国建立的高等学校,学校认真贯彻党的教育方针,坚持社会主义办学方向,始终与祖国同呼吸,与人民共命运。在这里,我更加深入地感受到中国只有在中国共产党的领导下,才能走向繁荣富强。“中国共产党是一个伟大的、光荣的、正确的党”,这句话是我们在日常工作生活中经常能听到、看到和说到的一句话。从华中科技大学的校史中,更重要的是我们可以从思想深处来理解她的内涵,感受她的真谛,实践她的宗旨,而这不是一句套话,确确实实我们可以从实际中来感受到体验到。

一个人的青春可以平庸无奇,也可以放射出英雄的光茫;可以因虚度而懊悔,也可能用坚实的步子,走向辉煌壮丽的成年。党是我心中一面永远飘扬的旗帜。我坚决拥护中国共产党,遵守中国的法律法规,认真贯彻实施党的基本路线和各项方针政策。不做侮辱国家的事,不出卖国家,严格保守党和国家的秘密,执行党的决定,服从组织分配,积极完成党的任务。除了努力学好学课程和努力完成科研任务之外,在思想上我还积极要求进步,坚持学习党的理论知识。在新的形势下,高举中国特色社会主义伟大旗帜,以邓小平理论和“三个代表”重要思想为指导,深入贯彻落实科学发展观,继续解放思想,坚持改革开放,推动科学发展,促进社会和谐,为夺取全面建设小康社会新胜利而奋斗。我更加明确了党在新的历史条件下的目标和任务,更深刻理解了一个党员的权利与义务,也更认识到了自身的优缺点和未来的努力方向。

我志愿加入中国共产党,拥护党的纲领,遵守党的章程,履行党员义务,执行党的决定,严守党的纪律,保守党的秘密,对党忠诚,积极工作,为共产主义奋斗终身,随时准备为党和人民牺牲一切,永不叛党。

如果党组织能批准我的申请,我会更加严格要求自己,拥护党的纲领,遵守党的章程,履行党员义务,执行党的决议,严守党的纪律,保守党的秘密,对党忠诚,积极工作,为实现社会主义而奋斗终身。如果党组织没有接受我的请求,那么说明我离党员的标准还有一定的距离,条件也尚未成熟,我决不会气馁,会继续为之奋斗,争取早日加入中国共产党。

 

恳请党组织考验我。

新浪微博自动采集发布软件

实现的功能有,

1.自动采集你感兴趣的微博 并且是被采集博主的原创微博 以达到微博内容的中集中程序

2.自动整理汇集后 以特殊的频率以原创微博发布 实现微博的自动排重

3.自动认别发送成功与失败并在数据库中记录

4.采集到微博并未发送条数达到2000后,停止采集,发送过的微博达到2000条时自动删除这些内容,减轻mysql计算担负

5.自动去除含有广告的微博,(广告形式多种多样,尽力而为了,不可能全排除完,有新情况没遇到么)

6.含有图片的微博能够完美的实现有图微博的原创

7.其它功能不再一一概述

使用方法:

上面两个sql文件是mysql需要的新建的两张表 ,其中fetch_url表需要自行导入你需要采集的微博地址,注意的是 需要这样的地址 http://weibo.com/rootsir   url后面不能带有参数否则会出错

最重要的 rootsir.ini 这个配置文件啦 其中内容如下 需要自行配置 必须每行一项内容

[Cookies]=我的Cookie不给你看
[DatabseIP]=127.0.0.1
[User]=root
[Passwd]=passwd
[Dbname]=test
[Time]=5

上面的Cookie文件夹不要删除,把你微博的Cookies 抓取一下 自动填后面 不会抓的自行百度,google 如果发送或者采集内容失败请把Cookies文件夹里面的所有文件删除 但是不要把文件夹删除 将最新的Cookie 写入到配置文件中 重新启动程序即可

Database就是你的mysql的所在IP地址啦,只支 持3306端口了,懒的加了  一般都是这个的

然后是 用户名和密码

最后一项是 每间隔多少分钟发一次微博的设置

上面还有几个DLL 删除后程序也没法运行了。。。。。先就说这些

下载地址在下面

AutoWeiBo新浪全自动发博机器人

服务器被罗马尼亚黑客入侵

今天头告诉我有一台服务器有 大量的sshscan进程 有个叫test的用户问我怎么回事

我上去服务器一看果然有好几十个进程 首先将进程关掉 pkill sshscan

su test 看有一下日志记录没有 history后 果然还有

 1  w
2  uname -a
3  cat /proc/cpuinfo
4  passwd
5  w
6  php -v
7  perl -v
8  ifconfig
9  cat /proc/cpuinfo
10  wget http://download.microsoft.com/download/win2000platform/SP/SP3/NT5/EN-US/W2Ksp3.exe
11  rm -rf W2Ksp3.exe
12  uname -a
13  cd /tmp
14  ls -a
15  cd .ICE-unix/
16  ls -a
17  cd ..
18  ls -a
19  cd ar/tmp
20  ls -a
21  cd /usr/games
22  ls -a
23  cd ar/spool
24  ls -a
25  cd /dev/shm
26  ls -a
27  cd /tmp
28  ls -a
29  cd /test
30  wget http://download.microsoft.com/download/win2000platform/SP/SP3/NT5/EN-US/W2Ksp3.exe
31  rm -rf W2Ksp3.exe
32  wget http://download.microsoft.com/download/win2000platform/SP/SP3/NT5/EN-US/W2Ksp3.exe
33  rm -rf W2Ksp3.exe
34  ls -a
35  php -v
36  perl -v
37  ps -x
38  w
39  uname -a
40  cat /proc/cpuinfo
41  pkill scanssh
42  top
43  ls
44  ls
45  pwd
46  exit
47  cd
48  ls
49  top
50  ls
51  exit
52  history
百度了一个 W2Ksp3.exe 结果发现好多人都被这家伙搞过 下载这个EXE文件 应该是用来测试网速的 怎么能在LINUX上运行呢
上面这段记录不完整不知道为什么
这家伙应该共登陆了三次
找一下 这个sshscan是什么吧 find / -name sshscan 竟然藏的挺严实的
看了一下里面都是些什么东西
my.zip是我刚才将这些目录打包的
a是一个脚本
#!/bin/bash
if [ $# != 1 ]; then
echo ” usage: $0 <b class>”
exit;
fi
rm -rf bios.txt
echo -e “fly with me :X”
././pscan2 $1 22
echo “continue…”
sleep 2
mv scan.log bios.txt
./scanssh
passfile里面是几万条弱口令密码
sshscan就是攻击程序了
trueusers.txt 应该是扫描的结果我试了两个结果没上去 不知道为什么
这个IP来自罗马尼亚
经常百度的资料来看
这个黑客确实来自这里 他应该扫描了好多的服务器
http://www.hengha.me/blog/2010/08/07/intrude-by-accident.xhtml
上面也有这个人的详细分析
杯具呀 竟然被人入侵了 郁闷心情无以言表
这些入侵主要是因为我用了test和密码test的用户 全测试邮件接收情况  结果没有删除 网络真是不安全啊