Archive for May, 2011
No snow!
Posted by: | CommentsWe’ve recently started a major project with one of the largest broadband operators in North America.
As a result, F-Secure is hiring a bundle of new people.
We are in need of Architects, Developers, Testers, and Scrum Masters. We’re looking for expertise in Python, C, SQL, Linux, high availability, scalability, automation, and networking.
We offer relocation packages and the works. And Helsinki is beautiful!
Here’s a picture taken from our office’s sauna balcony just now:

You see? No snow. And we expect a really beautiful sunset tonight. At 10:27pm. Join us.
You can leave an application on our recruitment pages.
On 31/05/11 At 01:00 PM
New DroidDream Variant Found on Android Phones
Posted by: | CommentsAndroid has become the main target for mobile malware.
Here’s “Hot Girls 1″, which was still yesterday available for download to your Android phone from Android Market:

This application was originally harmless. However, a malicious developer called “Magic Photo Studio” downloaded the original application, modified it and re-uploaded it to Android Market.
As an end result, when installing “Hot Girls 1″, you might notice that it requires suspicious rights, especially for an application which is just supposed to show you pictures of, well, hot girls:

If you take a closer look at the installation file with a hex editor, you’ll see that the application has references to stuff it’s absolutely not supposed to be doing, including sending text messages:

The malicious developer has inserted code that triggers when the phone receives a text message.

The added code will connect to a server and send details about the infected handset to the malware authors. So we’re talking about a mobile botnet.
Our Android security product F-Secure Mobile Security blocks this as a variant of the DroidDream trojan, with the detection name Trojan:Android/DroidDream.B.
Dozens of examples of infected applications have been found from Android Market, uploaded under such developer names as Magic Photo Studio, BeeGoo and Mango Studio. Google has now removed them from the Market.
On 31/05/11 At 03:31 PM
Old trojan tricks on Android
Posted by: | CommentsWe recently did an analysis on a trojan, AdSMS, that’s been spreading for the last week or so and thought it might make an interesting contrast to the rash of trojanized Android apps that we’ve been seeing lately.
AdSMS is distributed via a malicious link in a spammed SMS message. The malware appears to be targeted to Android users in mainland China, as the SMS is faked up to look like it’s from a major Chinese telecom network and the download link deliberately spoofs a domain name associated with the network.
AdSMS is promoted as an ‘update for a security vulnerability’. Sounds like a throwback to the old Symbian trojans (e.g. Merogo and MapUp), which used this exact same distribution and social engineering strategy.
If the user clicks the link, the malware is downloaded. These are the permissions the trojan requests:

An update that needs to send SMS messages? Hopefully an alert user would notice that and suspect something’s amiss.
Once installed, AdSMS doesn’t add an icon for itself on the application menu; it just runs silently in the background. Users need to check the Setttings > Applications > Manage Applications menu to see if it’s present, under the name ‘andiord.system.providers’:

Again, an old trick, though in this case previously seen in mobile espionage suites such as Phone Creeper and Flexispy. Incidentally, once on the Manage Applications menu, users can uninstall the trojan as per a normal app.
Once installed, the trojan steals phone details, connects to a remote site to download more files. It also has the capacity to read, write and send SMS messages, much like the preceding Trojan:AndroidOS/Fakeplayer.A.
So there’s nothing new about this trojan’s tricks per se, but it’s one of the first we’ve seen on the Android platform to try some of them.
Our Android security product detects this as Trojan:AndroidOS/AdSMS.A.
——
Analysis by – Irene
On 01/06/11 At 02:58 AM
Recover a draft
Posted by: | CommentsYikes! What happens if you close a document before you’ve had a chance to save it and give it a name?
Word 2010 saves a draft of your document. See how you can get it back:
…(read more)
Visit 40 cities with our free OneNote TripBooks
Posted by: | Comments
Summer is here! Are you still planning a vacation, but you’re not sure where to go?
Dozens of travel bloggers from around the globe are sharing what each of their favorite 40 cities has to offer in a collection of downloadable TripBooks. You can use the free OneNote Web App to view each guide and then use OneNote 2010 to add your own content, photos, links, ideas, and itinerary before taking these notebooks on your next getaway. We’ve even included some “how to” videos to help you get started.
…(read more)
Are You Ready for Kscope 11?
Posted by: | CommentsKscope11 is ODTUG’s (Oracle Development Tools User Group) annual conference bringing together the best Oracle
minds in the industry. Our content covers BI and Oracle EPM,
Application Express, Database Development,and Fusion Middleware.
Star-studded panel!
Join Tom Kyte, Steven Feuerstein and Cary Millsap for a 90-minute
interactive panel discussion on database performance- the Database Guru
Panel
Don’t miss Tom’s other sessions: http://kscope11.com/dbdev#database
Mike Riley, President of the Oracle Development Tools User Group
(ODTUG) discusses what’s in store for Oracle developers and architects
at Kscope11 in Long Beach California (June 26-30). Listen to the podcast
And there’s still time to save!
To save $100 on Kscope registration fees, Visit http://bit.ly/cjAfzM & input the registration code ‘DBDEV’
Make your own graduation movie!
Posted by: | CommentsGather videos and photos of you and your friends and make a commemorative movie using Windows Live Movie Maker. When you’re done, you can publish your movie to YouTube, Facebook, or even to Windows Live SkyDrive.
Download the free program and get started today!
And if you’re the über creative type, try writing your own graduation song. You could become an Internet sensation like Corey Tynan!
Congratulations, graduates!
–Jennifer Bost
…(read more)
Elevator Pitch: Add a chart and make your boss smile (video)
Posted by: | CommentsEvery boss loves numbers and charts in PowerPoint presentations, right? If you want to make your boss smile (and who doesn’t?), in this elevator ride you’ll learn a few different ways to add charts to your presentation. This can be quick charts you build from scratch, or big charts you’ve already built in Excel.
…(read more)
Normalizing Repeated Columns: Multiple Columns (Part 2)
Posted by: | CommentsLast time, in Normalizing Repeated Columns: Multiple Columns (Part1) I talked about Normalizing data in repeated columns from a spreadsheet, like this:
Into a structure like this:
Using a One-Time process that creates the tables and relationships in addition to copying the data.
Appending to Existing Tables
The process for normalizing repeated column data into Existing Tables is similar to the One-Time process. It does, however, require you to create the tables and relationships correctly ahead of time. Because I’ve just created them in the previous section, I’ll simply delete the data and re-append it from the linked spreadsheet.
The two processes are very similar, but I’ll be using Append queries rather than Make-Table queries.
Step 1: Remove the common PC elements.
Since I’ve already got a table, I’ll use an Append query rather than the Make-Table query I used earlier:
INSERT INTO PC ( PC_Num, OS )
SELECT PC_RC.PC_Num, PC_RC.OS
FROM PC_RC;
Or in the Query Builder:
The resulting table looks like this:
Since I already have an autonumber primary key defined on the table, I don’t need to do anything further.
Step 2: Create Software_Temp table
This step is exactly the same as Step 2 above. I’ll use a Make-Table query to create a temporary table that will be used for creating the relationships later.
INSERT INTO Software_Temp ( PC_ID, Software, SoftwareType )
SELECT PC_Software_Temp.PC_ID, PC_Software_Temp.Software, PC_Software_Temp.SoftwareType
FROM (SELECT PC.PC_ID, Software1 As Software, PC_RC.Software1Type as SoftwareType
FROM PC INNER JOIN PC_RC ON PC.PC_Num = PC_RC.PC_Num
WHERE Software1 IS NOT NULL
UNION
SELECT PC.PC_ID, PC_RC.Software2, Software2Type as SoftwareType
FROM PC INNER JOIN PC_RC ON PC.PC_Num = PC_RC.PC_Num
WHERE Software2 IS NOT NULL
UNION
SELECT PC.PC_ID, PC_RC.Software3, Software3Type as SoftwareType
FROM PC INNER JOIN PC_RC ON PC.PC_Num = PC_RC.PC_Num
WHERE Software3 IS NOT NULL) AS PC_Software_Temp;
The result will be a table that looks like this:
Step 3: Remove Duplicates from Software_Temp
I need to create a query that removes the duplicate values. The DISTINCT predicate works well for that. As before, I’ll use an Append write the data to my existing Software table:
INSERT INTO Category ( SoftwareType )
SELECT DISTINCT Software_Temp.SoftwareType
FROM Software_Temp;
With the resulting table:
Again, this table already has an autonumber primary key, so I don’t need to create one.
Step 4: Creating the Linking Table: PC_Software
So now, I’ve got my two “One-Side” tables: PC and Software. Now I just need to fill the linking table.
I can do that with an Append Query and a simple join of Software and Software_Temp:
INSERT INTO Software ( Software, CategoryID )
SELECT DISTINCT Software_Temp.Software, Category.CategoryID
FROM Software_Temp INNER JOIN Category ON Software_Temp.SoftwareType = Category.SoftwareType;
Or in the Query Builder:
The final result will look like this:
It is important to note that the order in which the data is moved is vital. Data must be written into the “one-side” tables (PC and Software) first, and then data can be moved into the “linking” tables (PC_Software).
This two-part post is available as a single download (with sample database) here: http://www.rogersaccesslibrary.com/forum/normalizingrepeatingcolumns1_topic562.html.
Normalizing Repeated Columns: Complex PC Inventory (Part 2)
Posted by: | CommentsLast time, in Normalizing Repeated Columns: Complex PC Inventory (Part1) I talked about Normalizing data in repeated columns from a spreadsheet, like this:
Into a structure like this:
Using a One-Time process that creates the tables and relationships in addition to copying the data.
Appending to Existing Tables
The process for normalizing repeated column data into Existing Tables is similar to the One-Time process. It does, however, require you to create the tables and relationships correctly ahead of time. Because I’ve just created them in the previous section, I’ll simply delete the data and re-append it from the linked spreadsheet.
The two processes are very similar, but I’ll be using Append queries rather than Make-Table queries.
Step 1: Remove the common PC elements.
Since I’ve already got a table, I’ll use an Append query rather than the Make-Table query I used earlier:
INSERT INTO PC ( PC_Num, OS )
SELECT PC_RC.PC_Num, PC_RC.OS
FROM PC_RC;
Or in the Query Builder:
The resulting table looks like this:
Since I already have an autonumber primary key defined on the table, I don’t need to do anything further.
Step 2: Create Software_Temp table
This step is exactly the same as Step 2 above. I’ll use a Make-Table query to create a temporary table that will be used for creating the relationships later.
INSERT INTO Software_Temp ( PC_ID, Software, SoftwareType )
SELECT PC_Software_Temp.PC_ID, PC_Software_Temp.Software, PC_Software_Temp.SoftwareType
FROM (SELECT PC.PC_ID, Software1 As Software, PC_RC.Software1Type as SoftwareType
FROM PC INNER JOIN PC_RC ON PC.PC_Num = PC_RC.PC_Num
WHERE Software1 IS NOT NULL
UNION
SELECT PC.PC_ID, PC_RC.Software2, Software2Type as SoftwareType
FROM PC INNER JOIN PC_RC ON PC.PC_Num = PC_RC.PC_Num
WHERE Software2 IS NOT NULL
UNION
SELECT PC.PC_ID, PC_RC.Software3, Software3Type as SoftwareType
FROM PC INNER JOIN PC_RC ON PC.PC_Num = PC_RC.PC_Num
WHERE Software3 IS NOT NULL) AS PC_Software_Temp;
The result will be a table that looks like this:
Step 3: Remove Duplicates from Software_Temp
I need to create a query that removes the duplicate values. The DISTINCT predicate works well for that. As before, I’ll use an Append write the data to my existing Software table:
INSERT INTO Category ( SoftwareType )
SELECT DISTINCT Software_Temp.SoftwareType
FROM Software_Temp;
With the resulting table:
Again, this table already has an autonumber primary key, so I don’t need to create one.
Step 4: Creating the Linking Table: PC_Software
So now, I’ve got my two “One-Side” tables: PC and Software. Now I just need to fill the linking table.
I can do that with an Append Query and a simple join of Software and Software_Temp:
INSERT INTO Software ( Software, CategoryID )
SELECT DISTINCT Software_Temp.Software, Category.CategoryID
FROM Software_Temp INNER JOIN Category ON Software_Temp.SoftwareType = Category.SoftwareType;
Or in the Query Builder:
The final result will look like this:
It is important to note that the order in which the data is moved is vital. Data must be written into the “one-side” tables (PC and Software) first, and then data can be moved into the “linking” tables (PC_Software).
This two-part post is available as a single download (with sample database) here: http://www.rogersaccesslibrary.com/forum/normalizingrepeatingcolumns1_topic562.html.