Hollosi Information eXchange /HIX/
HIX CODER 1154
Copyright (C) HIX
2001-04-22
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 Re: onmodosito kod... (mind)  42 sor     (cikkei)
2 Re: onmodositas... (mind)  59 sor     (cikkei)
3 Re: onpusztitas & din. mem. (mind)  19 sor     (cikkei)
4 Re: Gyorssegely IP-cimre (mind)  29 sor     (cikkei)
5 Tablazat Visual Basic alatt (mind)  17 sor     (cikkei)
6 Re: onpusztitas (mind)  8 sor     (cikkei)
7 Re: unix alatt file timestamp-jenek lekerdezese c-bol (mind)  8 sor     (cikkei)
8 Re: Gyorssegely IP-cimre (mind)  12 sor     (cikkei)
9 Re: Screen Saver (volt: Video viewer) (mind)  31 sor     (cikkei)
10 re: uj menuelemek explorerbe,wordbe (mind)  44 sor     (cikkei)

+ - Re: onmodosito kod... (mind) VÁLASZ  Feladó: (cikkei)

tisztelt HIX CODER!

HC> a dolog "1szeru": a kodszegmensbe kell beleirni
HC> az "uj proggit" hat ez c-ben eleg nehezen lehetseges...
HC> assemblyben igen konnyen megvalosithato viszont, pl:
HC> self_destroyer_instruction:
HC> mov si,self_destroyer_instruction
HC> mov ax,0x0c36 ;*
HC> mov cs:[si],ax
HC> vagy valami ilyesmi lehet, en meg nem probalkoztam.
HC> igazabol meg asmban is tudni kell az opcodeot (ld. *).
;)))))))))))))) hat a dolog nem ennyire _egyszeru_....
az, hogy mi egy utasitas opkodja, vagy hogy hany
bajtbol all, ezek a dolgok csak lexikalis tudas kerdesei...
barki meg tudja nezni egy asm fordito vagy egy debugger
segitsegevel.... masfelol, aki onmodosito kodot akar,
es tudja is, hogy mit hova akar modositani, annak csak
van annyi esze, hogy 1) tudja mit csinal, es ugy kbre
tisztaban van, hogy mit akar mire cserelni, 2) valamennyire
az asmmel is tisztaban van, (mert az elegge furcsa keres
elnne, hogy a c programod egyik c sorat modositsd futas
kozben;)))) 3) ha megse lenne annyira gyakorlott, akkor
elobb megnezi, hogy hany byte kell az egyik variacionak,
mennyi a masiknak, es aztan kitolti noppal a kulonbozetet;)
ami a mov ax,0c36h mov cs:[si],ax -et illeti, egyfelol minek
erre ket utasitast pazarolni, ha a mov word ptr cs:[si],0c36h
is ugyanazt csainalja, masfelol mit ne mondjak, ez normal
esetben egy vedett modban futo alkalmazas eseteben teljesseggel
ki van zarva, ugyanis a gdt-ben ha egy deszktriptorban
bekapcsolod a code bitet, akkor onnantol az a szelektor
read-only, tehat a processzor az osszes belefirkalasi
kiserletedet kivetellel fogja honoralni...
(ergo elszall a programod, mint anno matuska bacsi;))))
a megoldas vedett modban onmodosito kodra talan az lehet,
hogy kersz egy adat szelektort a kerneltol (dpmi hosttol;)
ami eppen a kodra fog mutatni, csak eppen adat szelektor,
es irhato-olvashato.... amugy bocsi, de nem igazan vagyok
otthon se lin, se win hivasaiban, tehat ennek konkretabbat
nem tudok a temahoz hozzaszolni, de sebaj, ugyis van itt a
listan kismillio divat-programozo, valaki majdcsak megmondja....;)))))

na tovabbi jo kodolast, ill. bocsi ha cinikus voltam... Mc
+ - Re: onmodositas... (mind) VÁLASZ  Feladó: (cikkei)

tisztelt HIX CODER!

>Szuksegem lenne egy olyan fuggvenyre amely, ha a programomnak
>parancssorban megadok egy argomentumot, akkor az a tovabbiakban
>felulirja/letorli/elcseszi de mundenkeppen ugy modositja onmagat hogy
>a programot tobbe az eletben le ne lehessen futtatni. Latszolag
>egyszeru (toroljem a progit), de olyan megoldas kell ami unix alatt is
>mukodik ahol az irasi, modositasi jogok bekavarhatnak. (Allitolag
>vannak onmagukat futas kozben modosito kodok, talan ott a megoldas).
HC> Az onmodosito kod a memoriaban modositja onmagat es nem a lemezen.
khmm... akkor ugy latom te meg nem talalkoztal polimorf virusokkal....
azt, hogy mostanaban leteznek-e, gozom sincs, doshoz regebben
igen sok nagyon aranyos peldanyuk volt....;)))) az elv alatalban
az volt, hogy a kod maga kodolva van (pl xor valami;)... igy az a
resze tutira random lesz...;)))) tehat mar csak a dekodolo marad..
azt meg altalaban ugy csinaltak, hogy voltak a fontos utasitasok....
kozejuk be-be szorogattak tokeletesen random utasitasokat (persze
egy elore generalt lisabol;) a kod aljan van egy ilyen virus vaza...
gondoljunk csak bele, az adott pelda eseteben az ah, a bx, a cx,
a dh, a di, a bp, az es, az ss, az sp, es a flagek vegulis teljesen
szabadon valtoztathatoak, nem lesz hatasa a dekodolo mukodsesere....
ilyeten modon pl a mov bl,ah vagy hasonlo 'dummy' utasitasokkal ha
be-beszurunk minden utasitas koze randomnyit, akkor a dekodolo is mindig
random formaju lesz... egyedul csak looppal nehez a hejzet, de vegulis csak
egy kivonas kerdese az egesz....;)) tehat osszegezve, ha a fent
leirtakat valaki betartja, vegulis sima keresokkel kereshetetlen
virust tud majd osszehozni, mivel a 256 fele variacioja van
ugyanannak a kodnak... ha wordonkent xorol, akkor meg rosszabb
a helyzet....;))))))))) 65536 variacio azert elegge nagy
szam......;))))))))))))))) nem tul nagy vincsin nem lesz
egyetlen hasonlo mutans sem.....;)))


a vaz:

;..........................rnd opkodok...
mov si,offset coded_beg
;..........................rnd opkodok...
mov cx,offset coded_end-offset coded_end
;..........................rnd opkodok...
mov al,coder_num
;..........................rnd opkodok...
j1:
;..........................rnd opkodok...
xor [si],al
;..........................rnd opkodok...
inc si
;..........................rnd opkodok...
loop j1
;..........................rnd opkodok...
coded_beg:
;tsr-e valas, valami megszakitas hookolasa, stb...
;tudjatok, ahogy ez lenni szokott....;))))))))))
;persze minden xorolva....;))))))
coded_end:
coder_num db (minden kodban mas es mas;)


bocsi, ha hosszu voltam... na tovabbi jo (virus;) kodolast.... Mc
+ - Re: onpusztitas & din. mem. (mind) VÁLASZ  Feladó: (cikkei)

Az rtin szerint  ) azt irta, hogy:
>
> hali!
> a dolog "1szeru": a kodszegmensbe kell beleirni
> az "uj proggit" hat ez c-ben eleg nehezen lehetseges...
> assemblyben igen konnyen megvalosithato viszont, pl:
> self_destroyer_instruction:
> mov si,self_destroyer_instruction
> mov ax,0x0c36 ;*
> mov cs:[si],ax
> vagy valami ilyesmi lehet, en meg nem probalkoztam.
> igazabol meg asmban is tudni kell az opcodeot (ld. *).

Ez nem csak nyelvtol fugg, hanem oprendszertol es processzortol is. Ha
jol tudom, i386-tol felfele a vegrehajthato szegmens read-only, es ha az
oprendszer hasznalja ezt, akkor sehogyse fogsz tudni igy trukkozni.
Persze interpreteres nyelven tudsz onmodisito kodot csinalni, de az
kicsit mas teszta :-)
				Bye,NAR
+ - Re: Gyorssegely IP-cimre (mind) VÁLASZ  Feladó: (cikkei)

>Hogyan lehet egy programbol lekérdezni a futtató gép IP cimét.
>Van erre valamilyen beepitett fuggveny ?
>
>Környezet : Windows NT
>Ha lehet nem nyelv specifikus megoldas, hanem valami API hivas.
A legegyszerubb a gethostname()+gethostbyname() hasznalata. Pl. Delphi-ben a
kovetkezokeppen:

uses WinSock;

var WSAData: TWSAData;
    C: array[0..128] of char;
    H: PHostEnt;
type pin_addr = ^in_addr;
begin
  Win32Check(WSAStartup($101,WSAData)=0);
  try
    Win32Check(gethostname(@C,sizeof(C))<>SOCKET_ERROR);
    H:=gethostbyname(@C);
    Win32Check(Assigned(H));

    ShowMessage(inet_ntoa(pin_addr(H.h_addr^)^));

  finally
    Win32Check(WSACleanup=0);
  end;


Gabor
+ - Tablazat Visual Basic alatt (mind) VÁLASZ  Feladó: (cikkei)

Hello!

Kezdo Visual Basices vagyok. Szeretnek irni egy
szotarprogramot, es azt probalom megoldani, hogy egy
egyszeru tablazatba vigyem be a szavakat, es annak az
elemeire hivatkoznek, abban keresnek.
Mi erre a legjobb megoldas?
En arra gondoltam, hogy egy Excel tablazat tokeletesen
megfelelo erre, es barki bovitheti az adatokat, de hogyan
kell hivatkozni egy Excel tablara?
Vagy van jobb otleteket?
To:mb??
Csinaljak egy kulon tablazatprogramot?

Valaszokat legyszi maganba, koszi:

Barna
+ - Re: onpusztitas (mind) VÁLASZ  Feladó: (cikkei)

On Sun, Mar 15, 1964 at 12:34:55PM +0000,  wrote:
> Az onmodosito kod a memoriaban modositja onmagat es nem a lemezen.

Nem eppen kotozkodni akarok, de mmap()-pel szerintem el lehet
erni akar ilyen hatast is, korulmenyesen. (Ezt arra alapozom,
hogy lehet execve()-t emulalni mmap() segitsegevel.)

_tgz
+ - Re: unix alatt file timestamp-jenek lekerdezese c-bol (mind) VÁLASZ  Feladó: (cikkei)

On Sun, Mar 15, 1964 at 11:34:50AM +0000,  wrote:
>   melyik fuggvennyel lehet unix (sco unixware 7) alatt, c programbol egy
>   file letrehozasi (esetleg utolso irasi) datumat lekerdezni?

A letrehozasit sehogy, ha letrehozas utan mar volt iras is.
Az utolso iras a stat() altal visszaadott st.st_mtime-ban van.

_tgz
+ - Re: Gyorssegely IP-cimre (mind) VÁLASZ  Feladó: (cikkei)

On Sun, Mar 15, 1964 at 03:35:07PM +0000,  wrote:
> Hogyan lehet egy programbol lekérdezni a futtató gép IP cimét.

Nem egeszen jo a kerdes, mert ipv4 alatt nem a gepnek, hanem
NIC-eknek van cimuk, amikbol egy gepen tobb is lehet.

Ha mas nem mond okosat, akkor en a gethostid()-vel probalkoznek,
dokumentacio szerint olyan unique id-t ad vissza ami altalaban
a gep egy IP-cime. BSD specifikus hivas, de hatha implementaltak
NT ala is.

_tgz
+ - Re: Screen Saver (volt: Video viewer) (mind) VÁLASZ  Feladó: (cikkei)

On 19 Apr 01, at 15:13,  wrote:

> Az a gondom hogy egy adott program futasanak idejere le kellene
> tiltani a kepernyovedot, es ha a progi bezarul, akkor visszakapcsolni
> automatikusan.

int isScreenSaver = 0;

void DisableScreensaver(void)
{
    SystemParametersInfo(SPI_GETSCREENSAVEACTIVE, 0,
                    &isScreensaver, 0);
    if (isScreensaver)
        SystemParametersInfo(SPI_SETSCREENSAVEACTIVE,
                         FALSE, NULL, SPIF_SENDWININICHANGE);
}

void EnableScreensaver(void)
{
    if (isScreensaver)
       SystemParametersInfo(SPI_SETSCREENSAVEACTIVE,
                         TRUE, NULL, SPIF_SENDWININICHANGE);
}

Ez akkor mukodik csak, ha aktualisan nem fut mar a screensaver.
Ez tipikusan igy van. Nekunk kellett olyankor is, ha mar eppen
futott a saver, es a magatol feleledo programunknak kellett a
processzor. Ekkor ez nem szedi le a futo savert, azt kicsit
bonyolultabban kellett megcsinalni...

István
+ - re: uj menuelemek explorerbe,wordbe (mind) VÁLASZ  Feladó: (cikkei)

Haho!

Menut lehet modositani konnyen.
Az arra torteno kattintast mar kicsit nehezebb elkapni...
Szukseges lepesek (windows API hivasok):

FindWindow-al elkered a hackelendo applikacio hwnd-jet.
GetMenu-vel elkered a hwnd-hez tartozo hmenu-t.
GetSubMenu-vel tudsz a menuhoz tartozo almenuk kozul kivalasztani egyet.
('File', 'Edit', stb)
RemoveMenu-vel tudsz kiszedni almenukbol menupontot, illetve menubol
komplett almenut.
CreatePopupMenu-vel lehet uj almenut krealni.
InsertMenuItem-mel lehet beszurni uj menu elemet/almenut
DrawMenuBar-al ujrarajzoltatod az applikacio menujet.

Ezek utan mar csak le kell kezelni az uj menuelemeket:
SetWindowsHookEx -el lehetletrehozni egy hookot, amivel lehet vizsgalni
mindent, ami a windowsban uzenetszinten tortenik. Tehat el tudod kapni azt
az uzenetet, ami azt mondja, hogy klikkeltek a menupontra...
Ehhez en GetMsgProc tipusu hook procot hasznalnek. Ez akkor aktivizalodik,
amikor valaki mond egy GetMessage/PeekMessage API hivast es az uj uzenet
kikerul a varakozo queue-bol.
Tehat meg tudod vizsgalni az uzenetet, mielott a windows meghivna az
uzenetet lekezelo ablakot.
Ehhez egy dll-be kell rakni a hook fuggvenyt, mivel nem a sajat applikaciod
uzeneteteit kell elkapni, hanem egy masik alkalmazaset.
UnhookWindowsHookEx -al lehet ezt megszuntetni.

Az uzenet, amit celszeru elkapni:
msg = WM_COMMAND
HIWORD(wparam) = 0 (mivel menure kattintottak)
LOWORD(wparam) = menu item id (ezt te adtad meg, amikor letrehoztad az uj
menuelemet)

Konkret peldaprogit azert nem tudok kuldenki, mivel en csak kiszedtem
menuelemeket notepad menujebol, es azt is win3.1-ben tettem vala.
Ennyi infoval meg nemi help nezegetessel viszont mar ossze lehet utni
valamit, sok sikert hozza!

Ha valamit elrontotam volna, akkor kritikat kokemenyen!

Udv
STeve

AGYKONTROLL ALLAT AUTO AZSIA BUDAPEST CODER DOSZ FELVIDEK FILM FILOZOFIA FORUM GURU HANG HIPHOP HIRDETES HIRMONDO HIXDVD HUDOM HUNGARY JATEK KEP KONYHA KONYV KORNYESZ KUKKER KULTURA LINUX MAGELLAN MAHAL MOBIL MOKA MOZAIK NARANCS NARANCS1 NY NYELV OTTHON OTTHONKA PARA RANDI REJTVENY SCM SPORT SZABAD SZALON TANC TIPP TUDOMANY UK UTAZAS UTLEVEL VITA WEBMESTER WINDOWS