Archive for September, 2007

MySQL: Client does not support authentication protocol…

Thursday, September 27th, 2007

well, I am working on the dynamic part of the site(s). Each site has it’s own user/db and today I started on a new site so I obviously fired up mysql administrator adn created the db, table and all that and then created the user. Tested the site and got this in the logs:
shmysql: Error opening mysql: Client does not support authentication protocol requested by server; consider upgrading MySQL client
so I fired up a console and tested from command line: smae thing. I chaged the user/pass/db for the otehr site: works.

well, after almost an hour of trying out stuff, I found this:
The Fix

This is because, the mysqlclient installed on the box does not use the same authentication protocol that the mysqlserver is using. You can either upgrade the client, or reset the root password using this

SET PASSWORD FOR user@localhost = OLD_PASSWORD(‘password’);

it worked 🙂

Related posts

Atom/RSS(0.9,1.0,2.0/RDF in delphi

Friday, September 21st, 2007

It took me a few days until I finally found a component to do the job right.
The following article might be of help as well to new kids:
I used SimpleRSS from sourceforge, also mentioned in the above article.
I wrote myself a mini-parser for RSS 2.0. Maybe I’ll publish it sometime 🙂

Related posts

Malware zapper – trojan/worm/virus/etc

Sunday, September 16th, 2007

I’ve been dealing lately with some pretty werid malware that none of the online scan engines or some of the offilne AV softwares (free versions) or antispyware software (including adaware and spy bot search and destroy) were able to pick up. Yet, there they were and nomatter how you deleted teh file, it came back again. I made a small check with sysinternals process monitor and came up that the actual process doing the recreation was winlogon.exe (which was not altered in any way).
So, I booted up in safe mode, sorted the files from windows\system32 after size and started with the smaller ones workign my way up to the 4 kb limit. whatever exe/dll/sys/etc I found there that looked suspicios, I renamed. Rebooted the system and voila: everything is fine 🙂

so I made a small script to take care of the problems
@echo off
rename C:\WINDOWS\system32\Dcache.bin !!_Dcache.bin
rename C:\WINDOWS\system32\dpnaddr.dll !!_dpnaddr.dll
rename C:\WINDOWS\system32\dpnlobby.dll !!_dpnlobby.dll
rename C:\WINDOWS\system32\fastopen.exe !!_fastopen.exe
rename C:\WINDOWS\system32\fixmapi.exe !!_fixmapi.exe
rename C:\WINDOWS\system32\igxpxa32.vp !!_igxpxa32.vp
rename C:\WINDOWS\system32\keyboard.drv !!_keyboard.drv
rename C:\WINDOWS\system32\l_except.nls !!_l_except.nls
rename C:\WINDOWS\system32\ !!
rename C:\WINDOWS\system32\LTWND_n.lib !!_LTWND_n.lib
rename C:\WINDOWS\system32\mmtask.tsk !!_mmtask.tsk
rename C:\WINDOWS\system32\mouse.drv !!_mouse.drv
rename C:\WINDOWS\system32\mscdexnt.exe !!_mscdexnt.exe
rename C:\WINDOWS\system32\netware.drv !!_netware.drv
rename C:\WINDOWS\system32\nw16.exe !!_nw16.exe
rename C:\WINDOWS\system32\redir.exe !!_redir.exe
rename C:\WINDOWS\system32\rnr20.dll !!_rnr20.dll
rename C:\WINDOWS\system32\share.exe !!_share.exe
rename C:\WINDOWS\system32\sound.drv !!_sound.drv
rename C:\WINDOWS\system32\sysprint.sep !!_sysprint.sep
rename C:\WINDOWS\system32\sysprtj.sep !!_sysprtj.sep
rename C:\WINDOWS\system32\system.drv !!_system.drv
rename C:\WINDOWS\system32\systray.exe !!_systray.exe
rename C:\WINDOWS\system32\termcap !!_termcap
rename C:\WINDOWS\system32\vga.drv !!_vga.drv
rename C:\WINDOWS\system32\vwipxspx.exe !!_vwipxspx.exe
rename C:\WINDOWS\system32\winoldap.mod !!_winoldap.mod
rename C:\WINDOWS\system32\winsock.dll !!_winsock.dll
rename C:\WINDOWS\system32\winspool.exe !!_winspool.exe
rename C:\WINDOWS\system32\wowdeb.exe !!_wowdeb.exe
rename C:\WINDOWS\system32\wowfax.dll !!_wowfax.dll

some of the fiels might be genuine windows files. I never checked. But for the last 2/3 months since I am using this method, nobody complained of problems.

however, my preferred way is not to rename the files, but to replace their content with ome readable text (like this file was inoculated) and remove eberybodys access rights. Why is this the best way? Well, pretty simple: I am dealing with people not able to take care of them selfves so the chances of re-infections are very high; but with this method, next time the same worm/trojan/etc wants to infect, it will not be able to since the desired filename will not be writable 🙂

it is an ugly way to get rid of the pests but it works.

Related posts

Mysql upgrade from 4.0 to 4.1

Saturday, September 15th, 2007

I was working on the new site engine (hehe, now you know it’s comming) and just stumbled into the problem of 4.0 not supporting subqueries in joins. not funny. so I made an upgrade. Had to upgrade perl and recompile php for this. bleah.

well, back to work.

Related posts officially out of my system

Friday, September 14th, 2007

there has been only problems lately with this service and I sent them an enail a few days ago but they did not answer. Ok I say, then you’re out!!! 😈

Related posts

An attempt was made to reference a token that does not exist

Thursday, September 13th, 2007

So I was working on this delphi project using TEmbeddedWB (and then switched to TWebBrowser) and at one point I made some modifications to the way the control was behaving and I started getting this idiotic dialog box with “about:blank An attempt was made to reference a token that does not exist” and seldom, an empty IE window appeared with about:blank in it.
Now, I tried disableing all dialogs, disable sounds, etc. For no avail. I even deleted ALL instances of the web control to make sure that is the faulty guy. I even set a custom dialog title to try and find the one with problems, BUT, I was erronuosly getting anotehr control as beeing the faulty one.
Finally, it hit me. I had made the following modification: I added an OnBeforeNavigate2 event in which I opened all pages in a separate window like this:
procedure TClientForm.mainChatWindowBeforeNavigate2(ASender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
BrowseTo(url, handle);
obviously, if you use it like this, when loading the default empty document you will … open it in a new window 🙂

the correct way to deal with this is:
procedure TClientForm.mainChatWindowBeforeNavigate2(ASender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
if sametext(url, ‘about:blank’) then
BrowseTo(url, handle);

what a waste.

Related posts