leapftp 发表于 2008-7-11 00:55:57

请求懂汇编的朋友看一下这段代码

最近要采集一个有很多帖子需要回复的论坛 又找不到自动回贴的程序

刚才搜索到一段代码 有人已经实现过 哪位朋友帮忙编译一下 应该有很多人需要的
管理员 版主 懂汇编的朋友请帮帮忙


经常去一些论坛,看东西,权限小,有些东西看不到,发贴可以升级增加权限,灌水吧,似乎又是体力活,昨天忽然想能否写一个专门回帖灌水的程序,只要上网了,运行后,让他后台自己灌去吧,去百度搜一下,没有找到合适的,看来需要自己动手干了。
   
对socket通讯的程序,还没有用汇编写过,翻一些网上的资料,开始动手写,写完调试,用sniffer抓包分析。用自己的写程序直接发回帖内容不成功,看来需要前面的一个登陆过程包;把登陆包也加入程序中,然后发过去,再发回帖内容包,还是不能成功。用sniffer抓到的回应包,与正常的IE,相比没有看出区别,但再发送回帖内容包,就被服务器复位连接了。检查其他地方也没有发现问题,再用IE回帖抓包,反复分析好几次后,发现登陆包,用的端口号,与回帖包的端口号不一样。于是程序与服务器建立两个连接,一个发登陆包,一个发回帖包,再用IE观察发现,程序发送的回帖,已经成功的记录在论坛上了。终于成功了。
   
总结:这类程序,需要结合sniffer分析包发送内容,再者就是连接帖子,与回帖发送用的不是一个连接。至于为什么俺就不知道。

程序如下:其中zhucemsgsendmsg   
中数据是用sniffer抓的,每个机器是不一样的,主要是里面的cookee登陆内容。所以这部分的数据需要改动,给出只是大概数据。


;
########################################################################
   
command1PROTO
   
strcopylPROTO :DWORD, :DWORD, :DWORD
;
########################################################################
   
.data
sockinit   db 400
dup(65)
hsocket172s    dd
?
hsocket172r    dd ?
sockdata172   
sockaddr_in<>
zhucemsgdb 'GET /forum/thread-804062-1-1.html
HTTP/1.1',13,10
      db
'Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
application/x-shockwave-flash,
*/*',13,10
      db
'lastdomain=1231321321|werwqreqrwrwrwrrrrrrrrrr==|chinaren.com;
cdb_visitedfid=133; '
      
db 'cdb_passport=qazxswedc73ebdc98852c4; cdb_cookietime=31536000;
'
      db
'cdb_auth=eeg98RbBzdevn9E%2F6v3w9xpx53UfF1i5V%2FHP; cdb_pname=qazwedc;
cdb_sid='
biaozhi0cdb 'adadad; cdb_onlineforum=1;
cdb_fid133='
biaozhi1cdb
'1181310803',13,10,13,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

sendmsg    db 'POST
/forum/post.php?action=reply&fid=133&tid=804062&extra=page%3D1&replysubmit=yes
HTTP/1.1',13,10
      db
'Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
application/x-shockwave-flash,
*/*',13,10
      db
'Content-Length:
50',13,10
      db
'Connection:
Keep-Alive',13,10
      db
'Cache-Control:
no-cache',13,10
      db
'Cookie: SUV=0705111422107158; IPLOC=CN3700; club_chat_ircnick=werwrrrrreeee;
'
      db
'cdb_auth=eeg98RbBzdevn9E%2F6v3w9xpx1i5V%2FHP; cdb_pname=qazxswedc;
cdb_sid='
biaozhi0db 'qTv6Y7;
'
      db
'cdb_onlineforum=1; cdb_fid133='
biaozhi1db
'1181375889',13,10,13,10,'formhash=b6675caa&subject=&message='
messages   
db 768 dup (0)
cct      
dd
1181313803
cctd      
db '%d',0
biaozhi    db 12
dup(0)
smsgd      db
'%08x%08x%',0
smsg      
db 'testqaz8123test',0,0,0,0,0,0
ipipip   db '161.15.11.172',0
    .code
;
########################################################################
command1 proc
invoke WSAStartup,101,addr
sockinit
connnat1:
invoke
socket,AF_INET,SOCK_STREAM,0
.if eax !=
INVALID_SOCKET
   mov
hsocket172s,eax
   invoke
socket,AF_INET,SOCK_STREAM,0
   mov
hsocket172r,eax
   
   mov
sockdata172.sin_family,AF_INET
   invoke
htons,80
   mov
sockdata172.sin_port,ax
   invoke inet_addr,ADDR
ipipip
   mov
sockdata172.sin_addr,eax
   mov
eax,cct
   lea
ebx,
   ror
ebx,1
   invoke
wsprintf,addr smsg,addr
smsgd,eax,ebx
   invoke
strcopyl,addr smsg, addr
messages,15      
;生成发送回帖的内容数据
   invoke
connect,hsocket172s,addr sockdata172, sizeof sockdata172   
;用于发送登陆包
   invoke
connect,hsocket172r,addr sockdata172, sizeof sockdata172   
;用于发送回帖包
   .if eax !=
SOCKET_ERROR
      invoke
wsprintf,addr biaozhi,addr
cctd,cct
      invoke
strcopyl,addr biaozhi,addr
biaozhi1c,10
      invoke
lstrlen,addr
zhucemsg
      invoke
send,hsocket172s,addr zhucemsg,eax,0   
;发送登陆包
      invoke
Sleep,2000
      add   
cct,3
      invoke
wsprintf,addr biaozhi,addr
cctd,cct
      invoke
strcopyl,addr biaozhi,addr
biaozhi1,10
      invoke
strcopyl,addr biaozhi0c,addr
biaozhi0,7
      invoke
lstrlen,addr
messages
      add
eax,3d8h
      invoke
send,hsocket172r,addr sendmsg,eax,0   ;发送回帖包
   .endif
   invoke
Sleep,30000                                 
;延迟30s再发
   invoke
CloseHandle,hsocket172s
   invoke
CloseHandle,hsocket172r

    jmp   
connnat1
.endif
invoke
WSACleanup
    ret
command1 endp
;
#########################################################################
;
########################################################################
strcopyl
proc
sss:DWORD,ddd:DWORD,lll:DWORD
    push
esi
    push
edi
    push
ecx
    mov
esi,sss
    mov
edi,ddd
    mov
ecx,lll
    rep
movsb
    pop
ecx
    pop
edi
    pop
esi
    ret
strcopyl
endp

soarb 发表于 2008-7-11 09:22:00

就个就是整理好了给你用,你也用着不方便,这是面向编程人员的.
需要回复可以做一个相应系统的回复模块

leapftp 发表于 2008-7-11 16:09:00

原帖由 soarb 于 2008-7-11 09:22 发表 http://bbs.locoy.com/images/common/back.gif
就个就是整理好了给你用,你也用着不方便,这是面向编程人员的.
需要回复可以做一个相应系统的回复模块
做一个专门回复的模块要多少 dz繁体big5编码460008693
是对所有的帖子进行回复的模块

沦陷今生 发表于 2008-7-11 16:20:26

自动回帖?用Ruby的Watir即可搞定,自动发帖顶帖都可以如此实现。
页: [1]
查看完整版本: 请求懂汇编的朋友看一下这段代码