🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.asm
7 messages
7 total messages Started by michu2510 Sat, 14 Aug 2010 23:46
Samomodyfikujący się kod
#2389
Author: michu2510
Date: Sat, 14 Aug 2010 23:46
7 lines
1506 bytes
Witam
Ostatnio czytałem trochę o samomodyfikującym się kodzie. Niestety
trudno znaleźć więcej informacji o tym a ciekawi mnie to. Czy kod
który jest wstrzykiwany musi mieć stałą długość ? Czy taką technikę
można zaimplementować w językach wyższego poziomu ( C,C++). Oraz czy
ktoś zna jakieś przykłady lub artykuły z tym związane ?
Pozdrawiam
Re: Samomodyfikujący się kod
#2390
Author: Marek Borowski
Date: Sun, 15 Aug 2010 07:35
24 lines
1973 bytes
On 15-08-2010 01:46, michu2510 wrote:
> Witam
> Ostatnio czytałem trochę o samomodyfikującym się kodzie. Niestety
> trudno znaleźć więcej informacji o tym a ciekawi mnie to. Czy kod
> który jest wstrzykiwany musi mieć stałą długość ? Czy taką technikę
> można zaimplementować w językach wyższego poziomu ( C,C++). Oraz czy
> ktoś zna jakieś przykłady lub artykuły z tym związane ?
> Pozdrawiam
W wiekszosci obecnych systemow nie da sie uzyc samomdyfikujacego sie 
kodu, bo sekcja kodu mapowana jest readonly i proba zapisu spowoduje 
wyjatek bledu strony.

Druga sprawa to instruction cache i pipeline - tez przewidywalbym problemy.

Natomiast na starych systemach jest mozliwe i do wykonania w C rowniez - 
poprzez pointer na funkcje. Tyle ze samomodyfikujacy kod uzywalo sie aby 
pisac mega krotkie/szybkie procedurki wykorzystujac specyfike kodu 
maszynowego danego procesora. Np. zmienajac w kodzie adress skoku. W asm 
jest to prostsze.


Pozdrawiam

Marek
Re: Samomodyfikujący się kod
#2392
Author: Wojciech Muła
Date: Sun, 15 Aug 2010 08:25
13 lines
1414 bytes
On Sat, 14 Aug 2010 16:46:21 -0700 (PDT) michu2510
<michal.kozminski@gmail.com> wrote:

> Ostatnio czytałem trochę o samomodyfikującym się kodzie. Niestety
> trudno znaleźć więcej informacji o tym a ciekawi mnie to. Czy kod
> który jest wstrzykiwany musi mieć stałą długość ? Czy taką technikę
> można zaimplementować w językach wyższego poziomu ( C,C++). Oraz czy
> ktoś zna jakieś przykłady lub artykuły z tym związane ?

Tu masz prosty przykład w asemblerze i C:
http://0x80.pl/articles/linux_smc.html

w.
Re: Samomodyfikujący się kod
#2393
Author: Remek
Date: Wed, 18 Aug 2010 15:51
7 lines
1068 bytes
Użytkownik "michu2510" napisał:

> Ostatnio czytałem trochę o samomodyfikującym się kodzie.

A ja czytałem o ptworze Loch Ness. Tyle samo warte.

Remek
Re: Samomodyfikujący się kod
#2391
Author: Wiktor S.
Date: Wed, 18 Aug 2010 16:58
7 lines
1138 bytes
> Druga sprawa to instruction cache i pipeline - tez przewidywalbym
> problemy.

Daleki skok (nawet do następnej instrukcji) powinien załatwiać sprawę.

-- 
Azarien
Proponuję wątek pokrewny - metaprogramowanie
#2394
Author: Andrzej Grażyński
Date: Mon, 20 Sep 2010 21:45
4 lines
1196 bytes
Czyli dynamiczne generowanie kodu, który jest następnie wykonywany. W 
pierwszych Windowsach wyświetlano w ten sposób bitmapy - dla danej 
bitmapy generowało się procedurę renderującą i skakało do niej.
Zwykła statyczna, uniwersalna procedura była za wolna.
Re: Proponuję wątek pokrewny - metaprogramowanie
#2395
Author: Bartosz Wójcik
Date: Sun, 17 Oct 2010 23:59
26 lines
2323 bytes
On Mon, 20 Sep 2010 23:45:03 +0200, Andrzej Grażyński wrote:

> Czyli dynamiczne generowanie kodu, który jest następnie wykonywany. W 
> pierwszych Windowsach wyświetlano w ten sposób bitmapy - dla danej 
> bitmapy generowało się procedurę renderującą i skakało do niej.
> Zwykła statyczna, uniwersalna procedura była za wolna.

o ktorym OSie mowisz i ktora to DLLka odpowiadala, chetnie sobie to zobacze

nie wiem jak ty, ale dynamiczne generowanie kodu asma przydalo mi sie tylko
w 2 przypadkach

a) JITting do x86 wlasnego pseudokodu
b) copy protection (generujac dynamicznie algorytmy/mutacje kodu)

moze jestem krotkowzroczny i ograniczony, ale z checia wyslucham innych
zastosowan (oprocz tych wymienionych) vs statyczny kod, wedlug mnie dla
zwyklego zjadacza chleba, dynamiczne generowanie kodu wymaga juz wiekszej
wiedzy o budowie kodu, offsetach, relatywnych adresach, konwencjach
wywolywania funkcji, danych statycznych / lokalnych i nawet wykorzystujac
istniejace juz biblioteki wspomagajace dynamiczne tworzenie kodu asma (bez
znajomosci budowy instrukcji) to nadal ta cala reszta musi byc znana, zeby
cokolwiek sensownego/dzialajacego sklepac

-- 
Bartosz Wójcik | www.pelock.com
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads