Click Here to Install Silverlight*
United StatesChange|All Microsoft Sites
Microsoft
Links

Innovation from MIDC

At Microsoft India Development Center our teams develop strategic products for Microsoft
Home
Contest Details
Archives
Sumit Beniwal
B.Tech + M.Tech, IIITM Gwalior
 
I have completed four years of my five year Integrated Post Graduation program (B.Tech + M.Tech) at IIITM Gwalior. I did final years of my schooling from SMPS, Rohtak. I did my B.Tech project in the field of Image and Video Compression, and proposed a new zero-encoding scheme, the research paper is under review.
On a lighter side, I love playing games especially Need For Speed on my friend’s gamer PC, and am passionate about cars. Not at all a party guy, the mere word ‘dance’ scares me, but I love being with friends and we enjoy together in our own ways.

The whole Code4Bill experience has been great. Though it has been only 20 days since I joined IDC as an intern, I have started liking the work culture here. The absence of stipulated work timings is immensely convenient and what one does in the office is left entirely up to him or her. Emphasis lies on the results; what matters most is you and your work. I feel that even if one is at the bottom of the organization hierarchy, there is nobody to command you, and there is a lot of pure intellect to guide or help you. When it comes to the campus, the Microsoft IDC lives up to the name. I have also been enjoying the many recreational facilities here, which helps me unwind after a hard day’s work.

All in all, a great experience so far, and I am looking forward to more.

Windows Registry API Calls and Parameter Analyzer

Problem Scope:
Migration of enterprise customers from one operating system to other (e.g. from Windows XP to Windows Vista) put forward some challenges. Like, such customer may want to maintain state of installed applications while migrating from old to new operating system. And it may even like to choose selectively some application out of all for state migration. Such state includes global setting for the application and per user preferences. An application may use windows registry to store those settings. Analysis of such application binaries may lead to knowledge related to registry keys which are being accessed by that application, which may further be useful in the application migration.

The binary may call windows registry API with some parameter which can be statically figured out e.g. simply pass by a constant value. Such static analysis doesn’t claim to be complete as there may be some operations on parameters before being passed which cannot be statically figured out e.g. some runtime input data passed as parameter.

Steps to solve it:
1. For any call to a proc figure out high level API name and analyze parameter being passed to this for value. Parameter analysis would involve scenarios like:
 
Simple Constant being passed.
Constant being assigned to local variable or global variable and being passed.
Two strings being concatenated and passed.
Pointer analysis for actual value being passed.
More scenarios may be identified at implementation time.
2. Registry access data for system dlls can be put in a database for subsequent use. For other binaries analysis may be done as and when needed.

End Result/Target Scenarios:
With this tool, queries regarding windows registry can be made e.g. list all the registry key access by an application. When such static analysis data is integrated with the run time data, most of the environment issues should be caught much before the actual deployment. Other scenarios may be added as the project progresses.
Brain Teasers

Here are some of the questions that the code4bill contestants answered. How about trying your hand at them?
Multiply 14332 represented in base -7 with 16430 represented in base -8 and represent the output in base -9.
An array contains 9 occurrences of 0s, 8 occurrences of 1s and 7 occurrences of 2s in any order. The array is to be sorted using only swap operations. What is the minimum number of swaps needed in the worst case to sort the array?
You are given an infinite number of cookie boxes containing either 6, 9 or 400 cookies. You are allowed to use these boxes in any combination so desired. What is the maximum number of cookies that you cannot give out using the above boxes?

© 2009 Microsoft Corporation. All rights reserved. Contact Us |Terms of Use |Trademarks |Privacy Statement