Просмотр полной версии : "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/
Delimiter, нужно для чистки крипторов :)
begin_end, спасибо конечно, но ваш хеллоу ворлд палиться антивирусом (4/34) О_о
зы: "hello world", должен на вирустотале показывать нулевой результат ^^ (0/34)
---B34v3r---
23.07.2008, 01:26
@echo off
echo "Hello world!"
---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 (http://dump.ru/file_catalog/960130) упакованный 2,50кб
Zer0_c00l, выкладывай конечно ;))
Flame of Soul
23.07.2008, 02:09
Простите Hello Word это лажа (((
*.bin --- 39 байт
*.com - 39 байт
*.exe - 807 байт
Архив тут (http://allbasse.narod.ru/Hello_world.rar)
Нда, забыла - написано на асме.
Ради прикола сорцы бинарника :D найдите обфускацию!!!
#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 si, 0
next_char:
mov al, msg[si]
cmp al, 0
je stop
mov ah, 0eh
int 10h
inc si
jmp next_char
stop: mov ah, 0
int 16h
int 21h
end
Flame of Soul, большое спасибо, то что искал :) хм... но.... это не Win32-файлы :((( (не имеют PE-заголовок) :(((
Ну раз нет РЕ-заголовка, то, значит, и палиццо не будут :) Вот мой вариант :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 байт =))
krypt3r, эх... а скомпилированный вариант? ;)
Нууу, это тоже не РЕ-файл )))
Кстати, 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
Не проверял, винды нет :)
krypt3r, дайте скомпилированный, в exe формате, с PE-заголовком :)
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
Хм,странно,почему на вирустотале палиться хелов,ворд
izlesa, хз... чтобы правильно почистить криптор, я должен видеть точный результат, а не 4/34 :) а то выйдит закозябра и школьники не кританут пинчиг ^^
Xcontrol212, я тоже в непонятках :)
тогда, бери вариант zero_cool выше, тот ктр 2,5Кб.
ещё раз повторяю в версии с 1,5Кб секции объединены в одну, и это некоторым авирам не нравится.
Flame of Soul
23.07.2008, 12:33
тогда, бери вариант zero_cool выше, тот ктр 2,5Кб.
ещё раз повторяю в версии с 1,5Кб секции объединены в одну, и это некоторым авирам не нравится.есть такое )), так нехотелось за masm садиться. А пришлось!!!
Архив тут (http://allbasse.narod.ru/PE.rar)
__________________________________________________ ___________
| | 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 байт и все ему нравится, ни при линковке ни при компиляции, ни ошибок ни предупреждений не выдает, по при запуске билд выпадает в осадок. Скажите где я неправильно сделала?
.486 ; create 32 bit code
.model flat, stdcall ; 32 bit memory model
option casemap :none ; case sensitive
.data
msg db "hello, world!", 0Dh,0Ah, 24h
.code
start:
lea dx, msg ; load effective address of msg into dx.
mov ah, 09h ; print function is 9.
int 21h ; do it!
mov ah, 0
int 16h ; wait for any key any....
end start
Сосать :)
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асме????
Нет я вручную 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
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 кб если надо - выложу
мой вариант...на FASMе.... 1024 байт :-Pformat 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
:))
Зачем поднимать тему 2008 года?
++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++. >.+++.------.--------.>+.>.
Кто знает тот поймёт ;)
[n]-c0der
01.07.2009, 10:58
Гы, brainfuck =)
Помню писал для него компилятор на С++ =)
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot