Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Témata - hazardrok

Stran: [1]
1
Bazar / Sháním starý notebook
« kdy: 07. 04. 2021, 10:26:20 »
Ahoj, nemáte někdo k dispozici a chtěl by jste se zbavit starého notebooku (např: Compaq N600C nebo starší), který by uměl Windows 98?

Chtěl bych pro si pro děti udělat takové menší muzeum a také by se mi líbilo si občas zavzpomínat. Vyměnil bych ho za DELL LATITUDE D510. Baterie už sice nevydrží, ale dá se repasovat a mám k němu i disketovou mechaniku do slotu kam se strká DVD mechanika.

Ten dell bych na to použil strašně rád protože je funkční a má pěknej monitor, ale bohužel se mi nepovedlo sehnat ovladače na grafickou kartu. Tím pádem je pro mě v dnešní době nepoužitelnej. Případně ho prodám, za jeho cenu za jakou se na netu prodává se dá sehnat i takovej co by mi vyhovoval. Dík za nabídky a nápady.

2
Hardware / ESP32 STA nebo AP
« kdy: 19. 03. 2021, 15:35:06 »
Ahoj, narazil jsem na problem se kterym si nevim rady. Snazim se u ESP32 detekovat zda prichozi TCP pakety jsou z rozhrani STA nebo AP. Moje prvotni myslenka byla takova, ze to rozhodnu podle IP adresy. Jenze pak jsem zjistil, ze na STA i AP muzu mit stejnou IP adresu, takze toho nebude fungovat. Dale me napada ze by to mohlo jit podle MAC adresy, jenze zde jsem narazil na to, za nedokazu z prichoziho spojeni MAC adresu zjistit nebo nevim jak. Nenapada nekoho jak toto vyresit? Dik.

3
Vývoj / TCP bezpečnost
« kdy: 04. 02. 2021, 11:10:09 »
Ahoj, v poslední době mi příjde, že by se pomalu každý kdo používá přenos dat na internetu měl bát o jejich bezpečnost. Proto bych se chtěl jen teoreticky zeptat, jak by se dala hacknout tato situace...

Mám TCP klienta, který se připojuje na TCP server s veřejnou IP adresou. Jakmile se naváže spojení, tak veškerou komunikaci přebírá TCP server. Tj. server vždy zahajuje komunikaci a client mu odpovídá. Komunikace je nezabezpečená.

Moc nerozumim tomu, jak by někdo třetí, který sedí někde buhví kde mohl zasáhnout do této komunikace.
Jediné co mě napadá je že existuje hackerský TCP server, který má stejnou IP adresu jako můj a tak se client připojí k němu. Jak by to ale mohl dokázat, když jsou všichni z jiného města? V rámci jedné budovy client-hacker možná, ale jiná síť...

Existuje nějaká metoda jak se do toho spojení dostat, nebo možná ještě jinak jak bych to mohl sám dokázat? Abych to zjednodušil tak je mi úplně jedno, jestli ten hacker data sleduje. Jediné co nechci je, aby do toho spojení mohl data poslat.


4
Vývoj / Práce s vlákny v C
« kdy: 18. 01. 2021, 18:33:07 »
Ahoj, chtel bych se trochu seznamit s programovanim vicevlaknovych programu v C na linuxu. Mam totiz napsany vlastni jednovlaknovy server a domnivam se, ze pokud mi client zacne delat nejakou slozitou operaci napr. pracovat s databazi (pouzivam SQLite v kombinaci s json-c), tak mi to blokuje dalsi klienty. Abych do stavajiciho jiz odladeneho programu co nejmene zasahoval, vymyslel jsem si tento postup...pokud bude chtit client pristupovat do databaze, tak se tento pozadavek otevre v novem vlakne a jakakoliv dalsi operace totoho clienta bude blokovana dokud vlakno neskonci.

Zjednodusene jsem se to pokusil napsat do kodu, tak jak bych to chtel realizovat a ten zde predkladam. Muj dotaz tedy zni, jestli takto napsany kod bude korektne fungovat a pokud ne, tak jak by to melo vypadat? Ani me nezajima jestli je to takto vhodne resit apod., jde mi jen o princip. Dik za radu.

Kód: [Vybrat]
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>

static int init_function(void *arg);
static void *handle_function(void *arg);

static pthread_t thread_var = -1;

int main(int argc, char *argv[]){
  int ret; 
   
  //printf("%ld, %ld\n", thread_var, (long)&thread_var); 
   
  while(1){
    ret = init_function((void *)&thread_var);
    if(ret == 1){
      printf("vytvoreno nove vlakno\n");
      }
    //else if(ret == -1){
    //  printf("vlakno se nepovedlo vytvorit\n");
    //  }
    //else if(ret == -2){
    //  printf("vlakno stale bezi\n");
    //  }
   
    //printf("%ld, %ld\n", thread_var, (long)&thread_var); 
    }
 
  return 0;
  }

static int init_function(void *arg){
  pthread_t *p_thread = (pthread_t*)arg;

  if(*p_thread != -1){
    return -2; 
    } 
   
  if(pthread_create(&thread_var, NULL, handle_function, arg)){
    return -1;
    }
 
  //printf("%ld, %ld\n", thread_var, (long)&thread_var);
 
  pthread_detach(thread_var); 
  return 1;
  }

static void *handle_function(void *arg){ 
  pthread_t *p_thread = (pthread_t*)arg; 
 
  //printf("%ld, %ld\n", *p_thread, (long)p_thread);
  sleep(5);
  printf("konec vlakna\n");
 
  *p_thread = -1;
 
  return NULL; 
  }

5
Vývoj / Vývoj ve Windows: sériový port přes SSH
« kdy: 24. 11. 2020, 22:11:59 »
Ahoj, prosim o pomoc s vyvojem programu ve Windows (v linuxu to umim) aneb vim co chci, ale nevim jak na to. Program by mel umet nebo neumet nasledujici...

1. vytvorit virtualni seriovy port
2. pripojit se pres SSH jako client k definovanemu serveru pres uzivatelske jmeno a heslo
3. otevrit SSH kanal a preposilat pres nej data z virtualniho serioveho portu
4. nemusi mit GUI

Mel by nekdo nejaky napad jak na to?
Me osobne napadlo pouzit com0com jako emulaci serioveho portu a toho SSH klienta napsat v pythonu. Duvodem je to, ze s com0com uz jsem se v minulosti setkal a v pythonu pisu vsechno co chci aby bezelo na Windows. Prijde mi to ale jako dost kostrbaty reseni, protoze me by se nejvic libilo, kdybych pustil program. Vyskocilo by na me okno kam bych zadal uzivatelske jmeno, heslo, portu a dal OK. Dokud bych program nezavrel, tak by to fungovalo a mohl bych ho pustit i opakovane. Snad nechi tak moc ne? :)
Dik.

6
Server / Uzavření uživatele v domovském adresáři
« kdy: 28. 05. 2020, 10:59:33 »
Ahoj chtěl bych se zeptat na to, jak lze v linuxu zajistit, aby uživatel nemohl opustit jeho kořenový adresář. Už nějakou dobu se po tom pídím na internetu, ale přiznám se, že jsem nenašel nic čemu bych rozuměl. Nevíte tedy někdo o nějakém postupu jak to realizovat?

Zatím jsem se dostal tam, že mám vytvořené uživatele a jsou jim přidělená práva tak, aby každý měl přístup pouze do svého adresáře ve složce /home. V /etc/passwd jsem zrušil uživatelům přístup k shellu a nyní už mi zbývá jen to, aby nemohli opustit home a rochat se v sytému. Sice nemá práva na to aby něco poškodil, ale pro člověka, který tomu nerozumí je to dost matoucí, že něco takového může a pro člověka nepolíbeného linuxem je to neřešitelná situace se vrátit.

Důležité je asi poznamenat i to, že uživatelé mají přes svůj účet pouze vzdálený přístup ssh k souborům databáze. Jediné co tedy uživatel potřebuje je připojit se přeš ssh do své složky, stahnout si databázi a opustit sezení. Má někdo nějaký nápad. Dík.

7
Vývoj / Segmentation fault
« kdy: 09. 03. 2020, 08:19:08 »
Ahoj chtěl bych se zeptat na problém se kterým si nevím rady. Napsal jsem si TCP server v Cčku. Občas se mi stane a je to čistě náhodný proces, že mi server spadne. Někdy se to nestane týdny a někdy se to děje několikrát denně. Nebyl jsem schopen dostat z návratové chyby víc než "Segmentation fault" tak jsem zpusil použít GDB. Díky němu mám lepší výpis toho co se tam děje:
Kód: [Vybrat]
Thread 2 "main" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff49e8700 (LWP 30711)]
_int_malloc (av=av@entry=0x7ffff0000020, bytes=bytes@entry=128)
    at malloc.c:3779
3779    malloc.c: No such file or directory.

Z tohodle také moc moudrej nejsem, protože osobně se funkci malloc vyhejbám. Používám jí velice zřídka a snažím se co nejdůsledněji kontrolovat její použití. Kód dokonce spadne v momentě, kdy ani nejsem v bloku jejího volání. Napadá mě tedy jediné a to je, že to způsobuje nějaká knihovna třetí strany. Používám pro řízení filedescriptorů epool což mi zde na fóru někdo poradil a také SQLlite.

Neřešil jste někdo něco podobného nebo nemáte nápad jak se tohoto problému zbavit?
Dík.


8
Server / Maximální počet klientů vlastního TCP serveru
« kdy: 19. 12. 2019, 12:20:54 »
Ahoj, chtel bych se zeptat, zda by mi nekdo nedokazal poradit s TCP serverem. Napsal jsem si testovaci TCP server ke kteremu se pripojuji nejaka zarizeni zvenku a server z nich kazkou minutu stahne nejaka data. Ta zarizeni jsou trvale pripojena k serveru. Toto vse plni ma ocekavani a spolehlive funguje. Problem nastal v momente, kdy jsem se rozhodnul zatizit server. Zatez byla provedena tak, ze se vytvoril TCP clienta, ktery simuluje nove zarizeni a tento client byl nekoliksetkrat spusten. Jakmile mnozstvi clientu presahlo hodnotu 1024 server se zacal chovat divne a padat. Udajne je to dane tim, ze kazdy proces v linuxu ma nastaveno maximalni mnozstvi filedescriptoru, ktere muze pri svem behu otevrit. Overil jsem tedy tento prikaz:
Kód: [Vybrat]
ulimit -a a dostal tento vypis:
Kód: [Vybrat]
[core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 14853
max locked memory       (kbytes, -l) 16384
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 14853
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

Z tohoto jsem usoudil, ze mam skutecne nastaven maly limit a tak jsem do souboru:
Kód: [Vybrat]
/etc/security/limits.confpridal tyto dva radky:
Kód: [Vybrat]
rudolf          hard     nofile          32768
rudolf          soft     nofile          32768

Po restartu PC a novem vypisu maximalniho mnozstvi jsem dostal ocekavane udaje. Jake bylo ale me prekvapeni, kdyz po vytvoreni 1024 clientu server opet spadnul. V tento moment jsem uz naprosto bezradny a nevim jak dal. Nevite kde je problem? DIK.

9
Software / Sledování průběhu práce na SW projektu
« kdy: 05. 11. 2019, 08:27:04 »
Ahoj, nevíte někdo jestli existuje nějaký program, který by dokázal jakýmkoliv způsobem sledovat jak se mění obsah nějaké složky např. psaním softwaru nebo obecně textu? Toto pak třeba někam do grafu vykreslit nebo to umožnit jinak analyzovat.

10
Server / Vlastní server pro předávání dat z databáze
« kdy: 23. 10. 2019, 19:15:37 »
Ahoj, chtěl bych se zeptat na něco ohledně TCP serveru.

Úvodem...Napsal jsem si jednovláknovej zabezpečenej TCP server SSH s použitím knihovny openssh v céčku. Až na malé nedostatky, vcelku postačuje mým požadavkům. To jest přihlášení uživatele, vytvoření přenosového kanálu, odkomunikování žádosti uživatele. Díky tomu, že uživatel si se serverem vyměňuje maximálně pár set bajtů, dokáže naráz bez problémů obsluhovat více uživatelů. Těch nebude nikdy víc než pár set celkově natož v jeden okamžik.

Nyní bych chtěl přidat novou funkci a tou je vytvoření dalšího kanálu pro uživatele. Přes tento kanál bych rád uživateli nabídnul data z sql lite databáze. Jen bych chtěl upřesnit, že uživatele nemyslím uživatele v linuxu, ale uživatele ze seznamu jiné databáze.

A teď k dotazu...zvažuju dvě varianty řešení.
1. vytvoření tohoto nového kanálu udělám v novém vlákně a tím zjednoduším výměnu dat databáze,případně budu moci přenášet i větší soubory najednou.
2. zachovám kanál ve stávajícím vlákně a budu uživateli každý soubor dávkovat v menších blocích, dokud se data neodešlou.

Něco mi říká, že druhá varianta bude složitější, ale nevim proč mi příjde jako správnější cesta. Možná jsem jen neporozumněl vláknům a jejich výhodám...

Dokázal by mě někdo nasměrovat na správnou cestu? Za případné reakce moc díky a sory pokud je to dotaz mimo...jsem jen z FEL.

Stran: [1]