[ Vojislav Milunovic @ 23.01.2005. 13:03 ] @
Naime posle malog kolebanja resih se i ja da probam TASM, kad ono odusevio sam se, i to iz jednog prostog razloga.
Moguu opusteno da koristim strukture, a da pritom ne moram stalno daradim ASSUME registar : ptr neka_struktura

posle mog malog odusevljenja, odlucio sam da doticni okacim na ovu adres:
http://nonenone.net/tasm/

Velicina 3*1.4mb + tasm53w.zip (update sa 5.0 na 5.3 tasm) pa ko voli nek izvoli

poz
[ Sundance @ 23.01.2005. 14:02 ] @
Pa naravno :) assume is for pussiez :)

Ja imam i neki osjećaj da je i TASM brži od MASM-a. Čak radi i pod wineconsole na linuxu :)

Zamisli napišeš ELF infektor na TASM32, asembliraš ga pod wine-om, pokreneš ga pod wine-om i on kroz njega koristi win32API i inficira ELF executables na linuxu :)))

BTW Evo zakačio sam ti uz poruku 29a include filez, tamo imaju sve osnovne strukture za vx stuph.

Ako ti to nije dovoljno..vidi u %tasmdir%include, imaš TASM\INCLUDE, dobiješ već neke (WINDOWS.INC).
[ Vojislav Milunovic @ 23.01.2005. 14:37 ] @
Ne keve mi ovako je mnogo bre zgodnije, stvarno sam se odusevio sa ovim tasmom, jes da nema nesto mnogo include fajlova, ali se da lako napraviti, malo maznes od windows.inc iz masma, a i nekako mi se svidja da deklarisem solo funkcije stalno sa extrn =)
A i ovaj alat implib uopste nije los =) Sve vise i vise me odusevljava ovaj TASM =)
[ Vojislav Milunovic @ 23.01.2005. 14:49 ] @
Hvala za include, nego sat njima dodje onaj makro @SEH_Setup_frame taj me ubi a osecam da je nesto super za podesavanje SEH-a...
[ Sundance @ 23.01.2005. 15:20 ] @
Code:

@SEH_SetupFrame <jmp __exit_seh_fja>

....

__exit_seh_fja: @SEH_RemoveFrame

<oslobodi alocirane resurse ili izađi iz niti/programa>


Code:

; The following macroz "@SEH_SetupFrame" and "@SEH_RemoveFrame" are limited
; assembler versionz of the _try and _except keywordz used in C language.
; They provide fast and powerful "Structured Exception Handling" support
; for Win32 applicationz in a few linez of code. Though Microsoft seems
; intent on hiding the details of OS-level structured exception handling,
; this code relies on documented featurez of the Win32 API implementation
; and as such it works in both Windoze 95 and Windoze NT.

@SEH_SetupFrame macro   ExceptionHandler
                local   set_new_eh
                call    set_new_eh
                mov     esp,[esp.EH_EstablisherFrame]
                ExceptionHandler
    set_new_eh: xor     edx,edx         ; Setup new SEH frame
                push    dword ptr fs:[edx]
                mov     fs:[edx],esp
endm

; The ExceptionHandler argument in the @SEH_SetupFrame macro definition
; can be a single instruction or another macro containing several of them.

@SEH_RemoveFrame macro
                 xor    edx,edx         ; Remove new SEH frame and set old
                 pop    dword ptr fs:[edx]
                 pop    edx
endm


z0mbie koristi samo tasm32 + bcc32, zar ti treba ijedan drugi argument? :)

I u TASM-u imaš invoke (iako možeš i sa call slati parametre):

Code:

invoke    macro api
        extrn api:proc
        call    api
    endm
[ Vojislav Milunovic @ 23.01.2005. 17:34 ] @
cek a u cijim inc si nasao ove macroe? Ja evo skidam sve 29a ispocetka, kako bi uspeo da nadjem sve inc fajlove =)
[ Sundance @ 23.01.2005. 17:39 ] @
Onaj za @SEH_* imaš u 29a includez, ovaj za invoke imam u jednom svome util includeu :>
[ Vojislav Milunovic @ 23.01.2005. 18:23 ] @
A da evo nadjoh ga u win32api.inc =) Ja sam mislio po nazivu fajla da se tu nalaze definicije api-ja =)
[ Mikky @ 23.01.2005. 21:45 ] @
Pa i u MASM mozes da koristis strukture bez assume
npr
Code:

.data
 rect RECT <>
.code
lea eax,rect
mov edx, rect.RECT.left
[ Vojislav Milunovic @ 23.01.2005. 21:56 ] @
Nene nisam mislo na to =)

u MASM:
Code:

assume eax : ptr CONTEXT
push [eax].regEip


u TASM
Code:

push [eax.cx_Eip]

[ Sundance @ 23.01.2005. 22:10 ] @
Da, samo što ti se onda članovi struktura ne smiju poklapati jer ćeš inače dobiti errore. Zato svaka struktura svoje članove imenuje nešto tipa:

Code:

MojaGlupaStruktura struc
    MGS_Polje        DB    10 dup (0)    
    MGS_Broj         DD    0
MojaGlupaStruktura ends


Malo manje fleksibilno, ali ušteđuje tipkanje kasnije.
[ Vojislav Milunovic @ 23.01.2005. 23:03 ] @
Aha to sam provalio =)
Ali sve jedno opet je jako zgodno =)
[ weB_KiLeR @ 24.01.2005. 01:24 ] @
TASM je mnogo brz i odlican za pisanje tako nekih malicioznih programa ;)
BTW MASM sam ja najvise koristio za socket stuff, posto se nisam bas snalazio pa sam morao da includujem :(((
[ Vojislav Milunovic @ 24.01.2005. 02:19 ] @
Ma asm je asm =) Mene nervira jedino što ne znam šta se nalazi u kojim fajlovima, nemam ništa od dokumentacije osim onog šugavog WinApi helpa =))
[ weB_KiLeR @ 24.01.2005. 20:06 ] @
Ma svi helpovi koji ti trebaju ulaze u instalaciju Delphi5 ;)
[ Vojislav Milunovic @ 24.01.2005. 20:09 ] @
Pa gde to ima da se "kupi" kod nas u Beogradu?
[ BaCkSpAcE @ 26.01.2005. 22:51 ] @
Probaj fasm na http://flatassembler.net
[ Vojislav Milunovic @ 27.01.2005. 01:41 ] @
Ocu kad nadjem vremena =)
[ weB_KiLeR @ 27.01.2005. 15:14 ] @
Dodji do Panceva narezacu ti nije problem ;)
[ Vojislav Milunovic @ 27.01.2005. 18:25 ] @
Hah pa sto ne rece prosle godine kad sam svaki dan skoro dolazio u Pancevo =)
Ufff, mozda kad otopi pa onda da dodjem, de po ovom ledu da idem do panceva =)