Friday, June 25, 2010

My last day in Sony

Today is my last day in Sony EMCS bangi. 3 month has passed i finally i gotta bec to uni to continue my studying. I really appropriate the period in Sony.
The last pic i take in Sony

Sony car park

The last dinner i take in Sony as a Trainee

My beloved Sony colleague



My partner that accompany me for 3 month..

Tuesday, June 22, 2010

My 1st C# program DONE



After working on the C# few weeks, I finally done the QD 019 software program. I have testing the program few time and the program also check by my supervisor. It is passed.yeah....


Monday, June 7, 2010

Designing the 1st C# program

After few week of C# language learning, my supervisor finally give me a task today. My task overall is about to write a program to set the internet proxy setting to QD 019 model, disable the autorun in the PC, set the screen saver time and setting the general wallpaper that apply to my department.

The basic idea behind this was changing the registry value inside the window by using the software. all of the function such as autorun, screen saver, wallpaper, and proxy can be set by modified it registry value. so what I need to do now was create a window form and write the program into the form to do the setting.

Friday, June 4, 2010

troubleshooting on the HDMI port


today i starting to learn about something technical to the electronic subject. I starting to learn the procedure to troubleshot the HDMI port. First of all I understand the concept on how to doing the HDMI port troubleshooting, then I try do the flow chart for the procedure. Above is my flow chart.

With this flowchart, I can ease my troubleshooting and save time to do the process. I can help other engineer to troubleshooting also.


Saturday, May 29, 2010

after 1 week, my CRC check function finally done

This time my supervisor give me a sample CRC calculator that design by Software department engineer. he ask me to figure out how the CRC calculator calculate the CRC value. thank god for this sample calculator. By using this calculator, I can test the divisor value of the calculator that given by using the small string value. Actually this CRC calculator is using to calculate the that 2 .txt file that i have mention before. That means if I solve the divisor value in this CRC calculator then i can calculate the CRC value for the 2 .txt file.

First of all i try to find the divisor value from internet. My supervisor also told me that the CRC value we are about to calculate is due to CRC 16. Surprisingly, i found from internet that they are no fixed divisor value for CRC 16 even for other type of CRC. It is all depend to the designer of the software. Almost all of the designer will choose their random divisor value. This is due to security reason. Because they don't want to let other people change their information during the sending process.

That I mean I have to be act like a hacker. Oh my god, i am just a student,how can i do so advance stuff. I am just a normal student that have nothing in the IT field. But i have no choice, I have to try my best to achieve my goal.

First approach I try to do is breaking that CRC calculator into the source code. By searching the internet I know 1 easy way to breaking or decompiling the code is by using the decompiler. The decompiler that i download from internet cannot decompile the code completely.Even my supervisor also cannot understand the code that being decompiled.

I stuck in my first approach, I totally no idea to figure out the divisor value. I told my supervisor about my situation, then he ask me to do a reverse engineering and count the divisor value by reverse the process of long division. I try her advise and try to do the reverse long division. After try for few times, I cannot get the CRC value also because the information given is not enough for me to find the devisor value.

After few day using a lot of example string data to test the reverse calculation, I finally got it. I finally figure out the divisor value for the CRC 16. Yeah..

Friday, May 21, 2010

CRC calculation part1

after studying the basic of CRC calculation,my supervisor give me a task. This task is so call reverse engineering by my supervisor. he give me 2 .txt file, inside the both .txt file got a set of string contain of hex value for exp:

FF FF OO FF FF FF A5 E1
FF FF O1 FF FF FF A5 E1
FF FF O2 FF FF FF A5 E1

From both of the .txt file my supervisor given me, i thought my supervisor will ask me to count the CRC value. But my thought is totally wrong, because he give me together with CRC value from both file and ask me to do a reverse engineering process to find out the process of counting the CRC value.

This is totally different from what I have learn from internet before. The most challenging part is to decided the devisor value. This is hard, because the both .txt file is so long. If i doing a one time long division with the 2 .txt file, it will take me around 2 days to completed the computation. I will use around 100 page of A4 paper to compute this long division.OMG....

If i doing a mistake during the computation process, then i will get the wrong result and wasting my time...haha

Monday, May 10, 2010

crc learning

according to my supervisor, i have to learn crc in order to complete my project. so i trying to understand what is crc all about. Acording to googgle.com, crc is like a parity checking code that attached to the information we are about to sending. for each piece of information we are about to send, we have to calculate their crc value based on the general polynomial or devisor value. we have to xor our devisor value with the original information value.

adopted from wikipedia.com(way to calculate the crc value)

Computation of CRC

To compute an n-bit binary CRC, line the bits representing the input in a row, and position the (n+1)-bit pattern representing the CRC's divisor (called a "polynomial") underneath the left-hand end of the row. Here is the first calculation for computing a 3-bit CRC:

11010011101100 <--- input 1011           <--- divisor (4 bits) -------------- 01100011101100 <--- result 

If the input bit above the leftmost divisor bit is 0, do nothing and move the divisor to the right by one bit. If the input bit above the leftmost divisor bit is 1, the divisor is exclusive-ORed into the input (in other words, the input bit above each 1-bit in the divisor is toggled). The divisor is then shifted one bit to the right, and the process is repeated until the divisor reaches the right-hand end of the input row. Here is the last calculation:

00000000001110 <--- result of previous step           1011 <--- divisor -------------- 00000000000101 <--- remainder (3 bits) 

Since the leftmost divisor bit zeroed every input bit it touched, when this process ends the only bits in the input row that can be nonzero are the n bits at the right-hand end of the row. These n bits are the remainder of the division step, and will also be the value of the CRC function (unless the chosen CRC specification calls for some postprocessing).


after we calculate the crc value we have to added them to each byte of sending value before the transmitting process. up to this point, we can send the data and we will checking our correctness of data at the receiver side.if the crc value in the receiver and transmitter is same then the information is say to be sending successfully. otherwise we have to resend the information and check again at the receiver.