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

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   "hello world" ;) (https://forum.antichat.xyz/showthread.php?t=78121)

N1K70 23.07.2008 00:44

"hello world" ;)
 
напишите, пожалуйста, "hello world" ;)
хоть на чём.
вес как можно меньше (~ 1 Kb).
без "паковки".

нужен только бинарник (уже скомпилированный).

ps: "hello world" нужен для чистки крипторов :)

ps2: должен на вирустотале показывать нулевой результат ^^ (0/34)

Delimiter 23.07.2008 01:02

тебе так хочется увидеть код по Dos??? Или в этом и есть фишка?

begin_end 23.07.2008 01:03

1024 байта, написано на fасме под windows: http://himia.at.tut.by/HelloWorld.zip (бинарник+исходник)

ToniKapuchon 23.07.2008 01:07

delphi = 15 кб
C# = 17 кб

asm рулит))

Delimiter 23.07.2008 01:09

http://www.uinc.ru/articles/28/

N1K70 23.07.2008 01:09

Delimiter, нужно для чистки крипторов :)

begin_end, спасибо конечно, но ваш хеллоу ворлд палиться антивирусом (4/34) О_о

зы: "hello world", должен на вирустотале показывать нулевой результат ^^ (0/34)

---B34v3r--- 23.07.2008 01:26

@echo off
echo "Hello world!"

N1K70 23.07.2008 01:37

---B34v3r---, хм... оригинально :)) но нужен бинарный файл (*.exe) ^^

ZER0_C00L 23.07.2008 01:45

Код:

.386

.model flat,stdcall ; модель памяти - flat
option casemap:none

; подключение необходимых библиотек:
;-------------------------------------
include \masm32\include\windows.inc  ;
include \masm32\include\kernel32.inc  ;
includelib \masm32\lib\kernel32.lib  ;
include \masm32\include\user32.inc    ;
includelib \masm32\lib\user32.lib    ;
;-------------------------------------

; секция данных
.data
alert_upper  db "Simply program",0
alert_text  db "Hello, World!",0

; секция кода
.code
start:

  invoke MessageBox, NULL, addr alert_text, addr alert_upper, MB_OK
  invoke ExitProcess, NULL
end start

exe упакованный 2,50кб

N1K70 23.07.2008 01:51

Zer0_c00l, выкладывай конечно ;))

Flame of Soul 23.07.2008 02:09

Простите Hello Word это лажа (((

*.bin --- 39 байт
*.com - 39 байт
*.exe - 807 байт


Архив тут

Нда, забыла - написано на асме.

Ради прикола сорцы бинарника :D найдите обфускацию!!!
PHP код:

#make_bin#
#LOAD_SEGMENT=0500h#
#LOAD_OFFSET=0000h#
#CS=0500h#
#IP=0000h#
#DS=0500h#
#ES=0500h#
#SS=0500h#
#SP=FFFEh#
#AX=0000h#
#BX=0000h#
#CX=0000h#
#DX=0000h#
#SI=0000h#
#DI=0000h#
#BP=0000h#
jmp     start
msg db 
'Hello, world!'0
start
:
mov     si0
next_char
:
mov     almsg[si]
cmp     al0
je      stop
mov     ah
0eh
int     10h
inc     si
jmp     next_char
stop
:  mov ah0
int 16h
int 21h
end 


N1K70 23.07.2008 02:36

Flame of Soul, большое спасибо, то что искал :) хм... но.... это не Win32-файлы :((( (не имеют PE-заголовок) :(((

krypt3r 23.07.2008 07:25

Ну раз нет РЕ-заголовка, то, значит, и палиццо не будут :) Вот мой вариант :D
Код:

.text

.global _start

_start:
  xorl %eax,%eax
  movl %eax,%ebx
  addb $4,%al
  incb %bl
  movl $msg,%ecx
  movl $len,%edx
  int $0x80

  xorl %eax,%eax
  movl %eax,%ebx
  incb %al
  int $0x80
msg:
  .ascii "hello, world!\n"
  len = . - msg

388 байт =))

N1K70 23.07.2008 07:32

krypt3r, эх... а скомпилированный вариант? ;)

krypt3r 23.07.2008 07:45

Нууу, это тоже не РЕ-файл )))
Кстати, Flame of Soul
Код:

mov si,0  => xor si,si
cmp al, 0 => test al,al

Лучше уж что-нить типа
Код:

org 100h
cld
mov ah,0eh
mov si, offset msg
push cs  ; лишнее для COM но пусть будет
pop ds    ; а то вдруг вирь DS похерит...
load:lodsb
test al,al
jnz short next
int 20h
next:
int 10h
jmp short load
msg db 'Hello, world!', 0

Не проверял, винды нет :)

N1K70 23.07.2008 07:53

krypt3r, дайте скомпилированный, в exe формате, с PE-заголовком :)

izlesa 23.07.2008 09:18

2N1K70
тебе begin_end дал минимально возможный хеллоу. Как я понимаю (мой ассемблер вери бэд T_T) там объединены все секции в одну (чтото типа опции merge у MASMA ??? просто я синтаксис fasm не знаю). Он не палицо. Ты посмотри на антивири ктр чтото пишут. Их сигнатурные движки либо немного подглючивают на одной секции, либо .. я даже не знаю ) тем более посмотри, они его считают только подозрительным. Счас проверил хелловорлд со стандартными секциями, то он вообще не подозрителен для всех. Но он весит 2,5 Кб (zero_cool выкладывал выше) ... Вот и выбирай, что тебе предпочтительней.

Flame of Soul 23.07.2008 09:32

Цитата:

Flame of Soul, большое спасибо, то что искал хм... но.... это не Win32-файлы (( (не имеют PE-заголовок) ((
видимо не дочитала пост. не знала что надо с заголовками

Цитата:

Лучше уж что-нить типа
ты привел код для *.com так как org 100h , а у меня для *.bin )) а в них есть немного разницы))) но все равно спасибо

Цитата:

krypt3r, дайте скомпилированный, в exe формате, с PE-заголовком
см чуть выше)) Не проверял, винды нет

Если ни кто не скомпилит, жди када я с работы вернусь, я сейчас на обед перекусить зашла))

Xcontrol212 23.07.2008 09:36

Хм,странно,почему на вирустотале палиться хелов,ворд

N1K70 23.07.2008 10:38

izlesa, хз... чтобы правильно почистить криптор, я должен видеть точный результат, а не 4/34 :) а то выйдит закозябра и школьники не кританут пинчиг ^^
Xcontrol212, я тоже в непонятках :)

izlesa 23.07.2008 11:51

тогда, бери вариант zero_cool выше, тот ктр 2,5Кб.
ещё раз повторяю в версии с 1,5Кб секции объединены в одну, и это некоторым авирам не нравится.

Flame of Soul 23.07.2008 12:33

Цитата:

тогда, бери вариант zero_cool выше, тот ктр 2,5Кб.
ещё раз повторяю в версии с 1,5Кб секции объединены в одну, и это некоторым авирам не нравится.
есть такое )), так нехотелось за masm садиться. А пришлось!!!
Архив тут
Код HTML:

_____________________________________________________________
|  | folders | compil | size | Presence - PE | gui/cons |    |
| ========================================================= |
| ....masm1    Masm32  2560        +++            C          |
| ....masm2    Masm32  2560        +++            C          |
| ....exe2    emu8086  807        ???            C          |
| ========================================================= |
| В последнем просто добавила имя и 32 bit memory model на-  |
| врятли там появится PE от этого, точнее вообще не должен!  |
|___________________________________________________________|



Как ни странно но масм компилирует код ниже до 1536 байт и все ему нравится, ни при линковке ни при компиляции, ни ошибок ни предупреждений не выдает, по при запуске билд выпадает в осадок. Скажите где я неправильно сделала?
PHP код:

.486                      create 32 bit code
.model flatstdcall       32 bit memory model
option casemap 
:none       ; case sensitive
.data
          msg     db      
"hello, world!"0Dh,0Ah24h
.code
start
:
          
lea     dxmsg  load effective address of msg into dx.
          
mov     ah09h  ; print function is 9.
          int     21h      
; do it!
          
mov     ah
          int     16h      
wait for any key any....
end start 


zl0y 23.07.2008 13:35

Сосать :)
http://www.virustotal.com/ru/analisis/4fae9c7357fd8223dc6ad905781986d8
Результат: 0/35 (0%)

Если авер сказал Virus not found то это стоит понимать,как: авер тупой и нехуя ненашел тоесть в прямом смысле :)
http://www.sendspace.com/file/s6pxre

Flame of Soul 23.07.2008 13:51

zl0y написано на fасме????

zl0y 23.07.2008 13:54

Нет я вручную pe собирал,dos stub из win95 выдрал winhex'ом и сам helloworld был написан на fasm'е,после чего сделал его bin дамп :)

Цитата:

format PE GUI 4.0 on 'null'
include 'include\win32ax.inc'
entry start
section 'ZLOY' code readable writable executable

start:
;Step(1) : Get Kernel Base(read it from PEB,NT ONLY).
mov eax,[fs:30h]
mov eax,[eax+0Ch]
mov esi,[eax+1Ch]
lodsd
mov ebx,[eax+08h]
;Step(2) : Find 'GetProcAddress' address.
push 0x1FC0EAEE; hashed 'GetProcAddress'
push ebx ;kernel32 base
call .getproc
mov ecx,eax
;Step(3) : Find 'LoadLibraryA' address.
push 0xC8AC8026 ; hashed 'LoadLibraryA'
push ebx ;kernel32 base
call .getproc
;Step(4) : Load the 'user32.dll'
pushd 'user32'
call eax
;Step(5) Find 'MessageBoxA' address.
push 0xABBC680D ;hashed 'MessageBoxA'
push eax ;user32 base
call .getproc
;Step(6) Testing,now in eax pointer to 'MessageBoxA' func.
;i dont use here(push 0) if it 4 times pasted = 8 bytes,i use:
;(xor ecx,ecx) and 4 times (push ecx) = 6 bytes
xor ecx,ecx
push ecx
push ecx
push ecx
push ecx
call eax
ret

.getproc:
pushad
mov eax,[esp+0x24] ;module handle
mov ebx,eax ;save module handle
add eax,[eax+3Ch];pe header
mov edx,[eax+78h];export table rva
add edx,ebx ;module handle
mov ecx,[edx+0x18];Num of Name Pointers
mov edi,[edx+0x20];Name Pointers RVA
add edi,ebx ;module handle
.getproc_scan:
mov esi,ebx ;module handle
add esi,[edi+(ecx-1)*4] ;poiner to apiname
xor eax,eax
.getproc_hash:
rol eax,7
xor al,[esi]
inc esi
cmp byte[esi],0
jnz .getproc_hash
xor eax,[esp+0x28] ;~cmp ... if eax=[esp+0x28] then eax =0 and jump
jz .getproc_found
loop .getproc_scan
xor eax, eax
jmp .getproc_quit
.getproc_found:
mov eax,[edx+28h+(ecx-1)*4]
add eax,ebx
.getproc_quit:
mov dword[esp+01Ch],eax ; return result on eax
popad
retn 8

*Van* 23.07.2008 19:05

Код:

s segment stack
 dw 128 dup (?)
s ends

code segment
assume ss:s, ds:data, cs:code
data segment
x db 'Hello world!$'
data ends
start:
mov ax,data
mov ds,ax
lea dx,x     
mov ah,9
int 21h       
mov ah,4Ch
int 21h
code ends
end start

мой вариант... на masm'e экзешник 1.29 кб если надо - выложу

N1K70 01.07.2009 00:12

мой вариант...на FASMе.... 1024 байт :-P
Цитата:

format PE GUI 4.0

include 'win32a.inc'

invoke MessageBoxA,0,_message,_caption,MB_OK
invoke ExitProcess,0

_message db 'HALLO! WORLD!',0
_caption db 'HALLO!',0

data import

library kernel32,'KERNEL32.DLL',\
user32,'USER32.DLL'

import kernel32,\
ExitProcess,'ExitProcess'

import user32,\
MessageBoxA,'MessageBoxA'

end data
:))

Chrome~ 01.07.2009 00:57

Зачем поднимать тему 2008 года?

Mozy 01.07.2009 00:58

Код:

++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++. >.+++.------.--------.>+.>.

Кто знает тот поймёт ;)

[n]-c0der 01.07.2009 10:58

Гы, brainfuck =)
Помню писал для него компилятор на С++ =)


Время: 17:40