futas kozben batch file valtozas

(Eddig Jhv hala nem sok dolgom volt windowssal.) Most szuksegem volt egy negysoros batch demonra, amely n masodpercenkent lefuttat egy parancsot. (WTF1: a stackoverflow szerint winXP es alatta batch-ben nem lehet megoldani a varakozast, win8 mar ismeri a timeout-ot)

Veletlen nem zartam be, mikozben modositottam a forrast, es a guta megutott, mikor a futo programom modosult. Linux ilyet nem csinal. Nem nagyon van otletem, hogy hogyan valtozik, miert valtozik, internet szerint masoknak se. Majd komolyabban megnezem, hogy mikor/hogyan valtozik.

Jelenleg ott tartok, hogy fut ez a demon a gepemen admin jogokkal, mig user jogokkal modosithato a file... Raadasul tippem szerint a windows elarulja az arto programoknak, hogy hol van a .bat amely a timeout-ot futtatja, szoval kellemetlen sechole lett a gepemen. Otletem nincs, hogy lehetne megolDani, hogy irasvedett legyen a file, vagy mondjuk a memoriaba betoltse es onnan futtassa, ott tartok, hogy kiirom CD-re, az read-only.

Pff.

Hozzászólások


#!/bin/sh
echo 'Modifying the script...'
echo 'echo OUPS' >> $0
echo 'This was the last line...'

Nem vagyok róla meggyőződve, hogy az egészet berántja RAM-ba. Ugye láttad fentebb a tesztprogramot, amely futás közben appendel önmagához folytatást, és bizony, az le is fut?

Gondolom, egy if-et elég fi-ig megrágcsálni, egy case-t esac-ig, és így tovább. Meg aztán át lehet tolni a döglött lovat a szomszéd utcába. File-ban is seek-elhet pozícióra, a kernel meg majd kitalálja, ténylegesen hogy oldja meg, mennyit bufferel.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

A sima felhasználónak miért van joga módosítani? Tagadd meg tőle és mindenkitől, és olyan rendszergazda nevében futtasd, aki csak olvashatja.
Kicsivel több értelme van, ha a Take ownership of files or other objects szabályt is megfelelően beállítod. Azt nem tudom, hogy hogy lehet elérni, hogy az előbbi szabályt ne módosíthassa bármelyik rendszergazda. :) Ha nincs rá beállítás, registrys vagy fájlrendszer-szintű jogosultságkezeléssel valószínűleg megoldható.

Lehet, hogy létezik nyílt forrású* RAMdisk, csak olvasható funkcióval?

Úgy tudom, a vbs fájlokat az értelmező beolvassa futtatás előtt. A VBScript-értelmező 98 óta része minden asztali Windowsnak, vagyis XP-n is alapból használhatod, és a támogatott OS-eken az MS karbantartja.

Valami bat2exe eszköz (találni belőle nyílt forrásút* is, pl. a CodePlex-en)?

Az AutoHotkey nyílt forrású* (az összetettsége miatt sok hiba lehet benne).

Egy másik script, ami összehasonlítja a fő script ellenőrzőösszegét két biztonságos helyen tárolt értékkel, és csak akkor indítja el, ha egyezik a három érték? Ezt szerintem a Windows maga is tudja, de nem biztos, hogy egyszerűen használhatón.

* gondolom, hogy nem futtatnál semmilyen nem-MS-gyári-Windows zárt forrású programot

:)

"Otletem nincs, hogy lehetne megolDani, hogy irasvedett legyen a file"

XD

hint: ki _olvashatja_ az adott fájlt?