Author Topic: TASM .obj 2 Delphi  (Read 721 times)

Conflict

  • g0d i5 just a stat1st1c
  • Senior Member
  • ****
  • Posts: 475
TASM .obj 2 Delphi
« on: May 14, 2006, 06:31:07 PM »
zdar zdar
Urcite ste si vsimli, ze ma Delphi hrozne omezenej assembler(BASM). A je hafo dobrych zdrojaku v TASM. Abych se pri jejich kradeni(teda kopirovani) nemusel votravovat prepisovanim do pascalu, musim je do Delphi vkladat pres .obj soubory. Googlil sem jak malej, abych zistil jak na to. Vsude popisovali jak se to dela v HLA a ze musim mit TASM v5.3 a jiny kecy. Zkusil sem tedy HLA, ale hazelo mi to naky chyby. Prosel sem co HLA vytvoril, hodne upravil, zjednodusil a vysledkem je funkcni implementace .obj do Delphi.

1) Vytvorime ASM2OBJ.asm s nasledujicim obsahem.
Code: [Select]

;ASM2OBJ.asm

.586p
.model flat, syscall
option noscoped

.data
db ?

.code

public setREG, checkREG ;je dulezity kompileru rict, ze nase fcn sou public

setREG proc near32
mov eax, 0ffh
ret
setREG endp

checkREG proc near32
cmp eax, 0ffh
mov eax, 0h
jnz exit
mov eax, 1h
exit:
ret
checkREG endp

end

setREG a checkREG sou funkce, ktery budem volat z Delphi. jejich obsah je jasny.

2) vytvorime ASM2OBJ.obj soubor z ASM2OBJ.asm pomoci prikazove radky tasm32 ASM2OBJ.asm

3) zdrojak v Delphi, ktery vola nase funkce
Code: [Select]
.
.
.
implementation

{$R *.dfm}

{$L ASM2OBJ.obj } // loadneme si nas .obj

procedure setREG; external; // urcime co z .obj chcem pouzit
function checkREG: boolean; external;


procedure TForm1.FormCreate(Sender: TObject);
var
  s : string;
begin
  s := 'tady si zastavte v olly';
  asm
    pushad
    call  setREG
    popad
  end;
  if checkREG then ShowMessage('OK');
end;
.
.
.

Tot vse, ani to nebolelo.

btw: vite proc se nezobrazi hlaska "OK" ?? :rolleyes:

Master

  • [t4C]newbie child
  • VIP
  • *****
  • Posts: 615
Re: TASM .obj 2 Delphi
« Reply #1 on: May 14, 2006, 07:21:15 PM »
máte delat v c++ :)

Conflict

  • g0d i5 just a stat1st1c
  • Senior Member
  • ****
  • Posts: 475
Re: TASM .obj 2 Delphi
« Reply #2 on: May 14, 2006, 07:47:36 PM »
delal sem v C. v hodne vyvojovych prostredich. a ve vsech je az na VC++ hroznej ASM. A abych te vyvedl z omylu, tak ASM ve VC++ taky neni zadna slast. taky ma svoje omezeni. Ale da se to cekat, vzdyt kdo dela v ASM?? jen par magoru a ti omezeni vzdycky nejak obejdou i kdyz je to pracny jako prase. Je ale pravda, ze sem jeste nevidel packer v delphi, hihi, ten by vypadal.

Z!L0G80

  • -=[t4C]=-
  • Senior Member
  • ****
  • Posts: 280
Re: TASM .obj 2 Delphi
« Reply #3 on: May 14, 2006, 08:40:50 PM »
Quote from: Conflict
... kdo dela v ASM?? jen par magoru ...

podobne urazky si laskave nech  :mad: taky ti nerikam jakej ses debil kdyz delas v takove sracce jako je delphi  :confused:
-= SmrT SiGNaTuRaM !!! =-

Conflict

  • g0d i5 just a stat1st1c
  • Senior Member
  • ****
  • Posts: 475
Re: TASM .obj 2 Delphi
« Reply #4 on: May 14, 2006, 09:24:44 PM »
Valim se pod stolem, tady to asi nekdo nepochopil. Heee HEEE hihiihi juchuu chuu :D . Postavte boxersky ring, z80 se chce poprat s celym svetem. Jako bych to videl.

"Jako prvni nastupuje Svet a jako druhy prichazi jeho vyzyvatel Z80"
"Ale nee co to vidim, Z80 dava rany pod paaaas."
"Svet si to nenechava libit a... a... a... ale neeee no fuuuj, to je ale humus."
"Kolem ringu litaj zuby, Z80 se kaci k zemi. 10,9,8, nema to cenu. Z80 je odnasen z ringu."

Takhle dopadnes. Neboj neni to tak hrozny. Behem mesice sem byl zdravej.

Z!L0G80

  • -=[t4C]=-
  • Senior Member
  • ****
  • Posts: 280
Re: TASM .obj 2 Delphi
« Reply #5 on: May 15, 2006, 03:55:00 AM »
kdyby ses radsi misto navazeni se do nas magoru co delaj v asm venoval necemu lepsimu  :D ... ehm. nech me premyslet :confused:  ... jo uz vim naucil se programovat a anglicky a jeste se naucit s googlem by to chtelo  ;)
-= SmrT SiGNaTuRaM !!! =-

Iron Screw

  • [TiME4CRiME]
  • Administrator
  • Senior Member
  • *****
  • Posts: 260
    • http://ironscrew.wz.cz
Re: TASM .obj 2 Delphi
« Reply #6 on: May 15, 2006, 01:36:42 PM »
zase nejakej Conflict?? :D
Peace susenky!
TiME AND LiFE ARE ETERNAL - REVERSE ENGINEERING IS WAY OF LiFE
SO ISN'T CRIME

[TiME4CRiME]

Conflict

  • g0d i5 just a stat1st1c
  • Senior Member
  • ****
  • Posts: 475
Re: TASM .obj 2 Delphi
« Reply #7 on: May 22, 2006, 06:50:22 PM »
nez na to zapomenu, tak public nemusi bejt jenom fcn, ale i navesti
Code: [Select]
;ASM2OBJ.asm

public somecode


somecode:
xor eax, eax
mov eax, 1
add eax, 1
ret

nezapomente na instrukci ret pri ukonceni behu kodu