dlinkddns.com@ and unique email addresses

This is a spam email. There is not so much special about, just the recipient address. “Single use” email addresses have an advantage of trackability of spam sources, because once you start receiving messages onto this alias you immediately know the source. Not to say that you can block them easily.

Google Mail offers a similarly useful option of an optional suffix on the email address which is automatically stripped on message delivery: foo+bar@gmail.com is delivered to foo@gmail.com and one can add bars to help oneself sorting and tracking messages.

I am not the one receiving spam onto registration email with dlinkddns.com: dlinkddns email details leaked?.

Bonus reading: Use of the “+” to track email abuse: Using gmail filters.

Skype 6.0.0.126: improved support for video devices for richer user experience

A new release of Skype is out there, version 6.0.0.126:

  • Metro look on the main (roster) window – good job!
  • Broken compatibility with software (virtual) video capture devices – good job!
  • Broken compatibility with some of hardware capture devices – good job!

While stripping virtual video devices in favor of true cameras, to avoid issues, might be intentional (though it would still be hard to justify anyway), the update also screwed the operation with a true hardware WDM driver backed PCI video capture board… Nice – with a dozen of cameras around the table I no longer have a single one compatible with Skype.

A little bit of hackery brings virtual DirectShow sources back to life, including those created by IP Video Source, however the issue is clearly Skype’s: I have no intention to work it around, let’s hope Skype guys are given some piece of mind to fix that soon.

Be aware and DO NOT UPGRADE if operation of virtual video source in Skype is is essential!

NOTE: There is an open issue on Skype’s tracker for the virtual camera compatibility.

IP Video Source: Support for HTTPS protocol

This publishes a small update to IP Video Source tool to expose M-JPEG/JPEG video streams as DriectShow video devices. The utility now accepts https:// URL scheme and pulls video over secure connections. Not every camera has support for HTTPS, however many do including those from UDP Technology, Axis etc.

The update also includes other minor fixes including more reasonable memory allocation, and hotfix for D-Link DCS-930L model, which – to mention – is an excellent indication of quality of camera firmware nowadays (it has nothing to do with D-Link, most of vendors do things like this):

#pragma region D-Link DCS-930L Fix
// NOTE: This is just ridiculous, the camera sends boundary with space without quotes AND misuses -- prefix
if(sValue.Compare(L"multipart/x-mixed-replace;boundary=--video boundary--") == 0)
    sValue = L"multipart/x-mixed-replace;boundary=\"video boundary--\"";
#pragma endregion

Download links

Log Process Exceptions: Filters and Email Notification

Moving on with LogProcessExceptions tool which externally monitors (debugs, to be more specific) an application of interest and captures its exceptions writing minidump files for further analysis.

This updates adds two features:

  1. Ability to filter out the exceptions of interest
  2. An email notification on exception, with or without minidump file

Filter

A new property page in the wizard provides one with an option to specify filters/rules to identify exceptions of interest. One rule per line, once exception occurred its codes are compared against rules top to bottom. The first matching rule results in decision whether to log the minidump (and issue a notification) or not. If no filter/rule applicable found, or the entire filter is empty, the exception is logged (positive).

The rule syntax is the following:

  • empty lines are ignored
  • anything to the right from // is considered to be a comment
  • meaningful line has one or more items separated by spaces
  • first item on the line is either - or + to indicate whether the rule will result in skipping the exception (minus sign) or logging in (plus sign)
  • second item is exception code, e.g. 0xC0000005 for memory access violation, 0xE06D7363 for native C++ exception (this constant has a dedicated alias “C++”
  • third item applies to C++ exceptions and matches ATL CAtlException codes, and this allows to filter out specific HRESULTs; it is also possible to specify a range of codes as shown on the screenshot above

Email Notification

Why? Some issues are long to wait, so you don’t want to have it in front of you until the issue takes place. This is when a friendly email from the application would be so much appreciated.

The application gets you that by queuing an email once exception of interest takes place. The email settings are basically those of class described on an earlier EmailTools.dll post. The whole SMTP email class is embedded into this application, and it actually deserves a dedicated post on explaining how to embed ATL COM class with persistence based on COM map, which in turn depends on type library expected to be registered, into another application which additionally runs without registration.

There is a default preset tuned for Google Mail, but there are other options as well. Note that both filter and email settings are saved into registry under HKCU to be reused in next runs of the application.

Small minidump files are attached right to the emails. Larger ones (typically those with Full Memory option checked) are only mentioned. There is a threshold setting that defines how many megabytes is OK to attach the most.

Download links:

Automated cell phone balance check, mutliple accounts

Everyone has a cell phone nowadays, a lot of people have 2+ numbers, many have dependents with cell phones. In this country with prepaid services being so popular the number of people who pay for cellular phone services for several numbers perhaps exceeds one million. It looks obvious that there is certain demand for a service to access multiple accounts and consolidate balances at ones fingertips to be able to top them up timely.

The idea itself is not new, there have been various apps to gather the information, however the companies seem to be ignoring this request. I have five numbers with Kyivstar which I want to keep in good standing and the best the company can offer is the website where I can log in and out interactively to query the stats one by one.

It definitely stopped being fun at some point (it was certainly one of those days when important number hit the bottom when it was not expected to) and I had to delegate the checks to an automated script. The challenge is merely simple: there is a website, one need to log in, automated, get the data of interest, and then a few times again. Below are a few steps a power user might do to set up automated balance querying.

  • First of all, there is an inproc COM server that implements the HTTP requests to My Kyivstar website. Pre-built UaMobileTools.dll is available from repository, so does the [partial] source code. The DLL has to be registered with regsvr32 and it is ready to serve. Effectively, it implements two HTTP requests to authenticate, and then obtain and parse web page with current balance and other account statement data (the relevant part of the source code is here).
  • Because the items below are going to involve sending an email to notify of low balance, one needs to similarly install and additional DLL to provide simple SMTP email services to scripting environment. The DLL is EmailTools.dll which also needs to be downloaded and registered. It was mentioned separately a while ago.
  • Next part is setting up automation script that does the querying. The COM server in item 1 above is the implementation of the requests, but it needs to be automated.

I prepared a template of the .JS script that performs the checks.

The script is Check – Template.js and can be basically used as is, with only putting numbers of interest and respective passwords from My Kyivstar service. The part to be updated manually and individually is around line 54:

Do("Ann", "+380961111111", "password at my.kyvstar.ua", 10);
Do("Bill", "+380962222222", "password at my.kyvstar.ua", 20);
Do("Celine", "+380963333333", "password at my.kyvstar.ua", 30);
Do("Diana", "+380964444444", "password at my.kyvstar.ua", 40);

Where the items within the brackets are, respectively, friendly name, number, password and balance threshold for notification.

Should any of the numbers have balance below the respective threshold, the script composes and sends an email with all balances on the body. I personally have it routed to both real mailbox, and SMS gate at 38096xxxxxxx@sms.kyivstar.net so I have the notification delivered to both destinations. Email settings are also on the script.

  • Now when checking script is implemented and ready, Windows Task Manager is here to run it on schedule. I have it running twice a day, morning and evening. The data is also being written into log file, and should there be a need for topping up – I have an email, and I have an SMS message. Task Scheduler only needs to run C:\Windows\syswow64\cscript.exe (might be system32 for 32-bit OS) with a full path to .JS script as an argument.

Happy being on top of when to top the thing up.

An excerpt in Russian for those who might want it that way.

Эта инструкция может быть полезна для тех, кто захочет путем
несложных манипуляций настроить проверку баланса счета мобильного
номера Киевстар так, чтобы она выполнялась автоматически, регулярно и
для нескольких счетов. Так, что если хотя бы один из счетов “уходит”
ниже порогового значения, чтобы следовало уведомление об этом письмом
или сообщением.

Для того, чтобы выполнить настройку, необходимо загрузить и
зарегистрировать несколько файлов как это описано выше, а также подправить
небольшой сценарий проверки, указав там номера и пароли к службе “Мой
Киевстар” для этих номеров.

Crashes in Visual C++ 2012 vs. Visual C++ 2010

Great news for those suffering from Visual Studio 2010 IDE crashes with losing recent source code changes. Visual Studio 2012 is way more stable (event with Visual Studio 2010 Platform Toolset!) and suffers from crashes without losing editor changes.

The worst thing you seem to be getting is:

Which is an access violation or stack overflow issue in a child process, so that the crash does not kill the IDE itself. The problems seem to be all around cpfe.dll, and they are so less annoying.

If you happen to experience anything of the kind, be sure to vote the bug report on MS Connect: Memory access violation and unhandled exception in cpfe.dll while editing C++ source code with Visual Studio 2012. Microsoft is still accepting feedback on this release and will hopefully resolve the problem in future VS 2012 updates.