Connect With Me In Facebook

Welcome to DefendHackers, If u want to Apply for a Blogroll as a Author , With h4ckfreak Mail me @ suren.click@gmail.com

Mark Zuckerberg tells 8th graders “there’s no shortcuts” and to make friends

By h4ckfreak

Metasploit Quick Start Referennce Guide

Metasploit Quick Start Referennce Guide , By h4ckfreak

IP Security

IP Security By H4ckfreak.

15 Network Admin Apps for Android

15 Network Admin Apps for Android , By h4ckfreak

Break All OS Passwords Using KON

Break All OS Passwords Using KON , By h4ckfreak

Recover Or Reset Ur Windows Pwd Using Ubuntu

Recover Or Reset Ur Windows Pwd Using Ubuntu , By h4ckfreak

Security Blueprint For Ethical Hackers..

By h4ckfreak

Blocking IP Using IPSec

By h4ckfreak

Preventing DDos Attacks, Combat Steps abd Tools...

By h4ckfreak

Monday, October 17, 2011

Mark Zuckerberg Uses Android Phone Finally

If his recent Facebook activity has to be believed, than Facebook’s founder and CEO might have just ditched his iPhone for Android. It was only last month when Mark made the headlines for switching to iPhone (it was 3GS, not iPhone 4) from BlackBerry. But the experience wasn’t all that great as he posted about his frustrations with the device, citing poor battery life, and phone calling quality. He also said that he will get the new iPhone 4 and see if that solves all his problems before switching to Android.
Facebook Zuckerberg on iPhoneMark Zuckerberg Profile on Facebook, June 2010
And now according to his recent Facebook activity, it looks like he has finally gone for an Android phone.
Mark ZuckerbergMark Zuckerberg Profile on Facebook, July 2011
But given the amount of revenues that he generates from the most popular social networking site, I wouldn’t be surprised if he keeps both the iPhone 4 and an Android phone to fulfill all his needs.
Oh and now that Zuckerberg is using an Android phone, we may finally see an update for Facebook for Android app which badly needs to get updated to come on-par with the iPhone version.

Tuesday, September 13, 2011

Lessons from Dhoni’s Leadership


Dhoni gives the following Leadership tips for every aspiring Leader :
1. We should be a performer and we should demonstrate the same to our team. Performance is itself the most effective communication down the line.
2. Leader has to be humble in way to consider part and parcel of the team and not above the team.
3. Give genuine respect and trust to the team members.
4. Allow them to experiment and take risk.
5. In case of failure, encourage him / her to introspect and do it next time with more vigour and better planning.
6. Make every one in the team feel that , even though we are leaders, we are just one among them.
7. We should also believe in the ones who failed in the Team. At crucial times a team member who was not able to deliver might do miracles.
8. As a leader, be calm in extreme situations and lead the team from front.
9. Share the credit of success with your team members and praise them in public.
10. Above all believe in every member in the team.

When Ganguly was playing his last match, as a gesture of respect, Dhoni asked Ganguly to take charge of the team when the ninth Aussie wicket fell. Whenever he has an opportunity, he showers his players with praises
Managing under change is a vital attribute to be learned from the leadership under Dhoni. A good leader doesn’t mind going out and exploring. Dhoni’s risk taking ability, inclusiveness and time-pressure qualities are good examples of leaders on the business side.
If you notice, instead of pressing teammates to win, Dhoni told them to just enjoy the game. Also, he has mentioned at several forums that he believes to live in the present and not worry about future or past.. Dhoni’s leadership style represents teamwork, empowerment and confidence.
Dhoni utilizes every team member at his disposal and brings out the best performance whether he is a senior or junior player. He provides opportunity for every team member to prove themselves and contribute to the best of their abilities.
Remember, he gave the last over to Joginder Sharma who doesn’t have much a track record., By putting such a person in front of a challenging task, it tells the person that the leader has confidence in his abilities and will be fired up to put in 120 per cent. This happened with Joginder Sharma in two critical matches, where he was hit all around the ground and still given the last over. He delivered on both instances!
Leaders need to be assertive yet humble and must rarely allow their personal egos to be an obstacle for the success of their organization and that’s what M.S. Dhoni showing us through his current leadership style.
Another learning from Dhoni is about, Optimal utilization of resources, which is vital for any business. Instead of giving excuses for lack of best resources, especially with the current scenario economic crisis, it is better to perform in whatever resources a leader has to his disposal
His ‘people management’ skills tell us, he is truly a great leader. When team members see their leader calm in extreme situations, they will not be rattled. It will enable them to focus on their work and do what is expected of them. Dhoni was always calm – whether the bowler started off the last over in the finals with a wide ball or the batsman played a series of dot balls in a slog over.
Mahendra Singh Dhoni is a forthright, straightforward cricketer unburdened by the baggage that generally accompanies a man onto the field, thereby restricting his outlook. At once he is intelligent and simple, aggressive and canny, tough and respectful.
Dhoni’s Inspiring Quotes
When asked why he was not happy at the moment of victory at the post match conference, Dhoni replied, “I didn’t like way we played. With such a strong batting display, we should have won comfortably”. Would you ever expect the captain of a team not celebrate the moment of victory in a match that almost went down to the wire?
“I never predict what will happen in cricket. We believe in each other and we believe in the process. We will take each game in the right frame of mind,” he said
“We are not thinking about what may happen if we achieve or what may happen if we don’t succeed because those two things are beyond our control. So rather than thinking about something that’s too much ahead of us it is very important to take every game in the right frame of mind and that is what will be our process throughout the tournament,” he clarified
“If you have not achieved something, there’s pressure on you to achieve it. Once you have achieved it, there is pressure to sustain it. Nothing comes easy.”
“We didn’t rely on one specific individual, everybody contributed. Each and every batsman scored at some point in the series and the same applies to the bowlers also.”
In a nutshell Dhoni’s story is all about an ordinary man doing extraordinary things and a role model for every aspiring leader. Each one of us could use this model, pattern and design to create our leadership journey.

30 lessons from Infosys Narayana Murthy

NR Narayana Murthy, who steps down as Infosys chairman on August 20, is a role model for not just what he achieved but also how he did it. Here are 30 lessons from Murthy, one for each year he spent at company.
1-Seize Your Gandhi Moment
Murthy, a self proclaimed socialist in the mid ’70s was jailed for 72 hours in Bulgaria. The experience taught him that entrepreneurship and job creation is the way to alleviate poverty.
2-You might fail, but get started Learn from mistakes and move on.
In 1976, Murthy founded Softronics, a company that lasted a year and a half. When he realised that his first venture wasn’t taking off, he moved on.
3-Think Big. Don’t Hesitate to Start Small
In 1981, a determined Murthy started Infosys with Rs 10,000 he borrowed from his wife. In few years, Infosys went on to become one of the largest wealth creators in the country.
4-Cut Yourself a Slice, Not a Large One Always
When Infosys was set up, Murthy took a pay cut while salaries of other co-founder’s were increased by 10 percent. According to Murthy, a leader needs to show his or her sacrifice and commitment
.5-Lend a Hand and Throw in a Foot Too.
After Murthy convinced seven of his colleagues, there was a problem. Nandan’s future inlaws were not sure about him. Murthy met Nandan’s uncle and convinced him.
6-Own Up, and Then Clean Up
In the ’80s Infosys developed an application for a German client. Murthy noticed a single character error and informed the client immediately.
7-Trust in God, But Verify with Data
In God we trust, the rest must come with data, is perhaps Murthy’s favourite statement. When confronted with difficult decisions, he tends to rely on data.
8-Keep the Faith
Infosys almost wound up in 1990. Murthy did not want to sell the company. He asked co-founders if they wanted out and offered to buy their shares. All of them stuck together.
9-Get Involved
Infosys won a contract from Reebok in the early ’90s. Seeing the founders involvement, the software, was nick named ‘Dinesh, Murthy and Prahlad.’ Infy veterans still recall those days.
10-Sharing is Caring
After the IPO, Infosys decided to share a portion of its equity with employees. This helped them retain talent and gave employees a sense of ownership. Murthy is proud of having given away stocks worth over Rs 50,000 crore to employees.
11-Treat your People Good, but Your Best Better
Murthy always had a thing for good performers. And he rewarded them well. When Infosys decided to give its employees stock options, Murthy insisted that some shares be given to good performers through the ‘Chairman’s quota.’
12-Hire a Good Accountant, Even if he is Argumentative
A young, argumentative Indian, was asking too many questions at an annual general body meeting of Infosys. More impressed than irritated, he hired Mohandas Pai, who went on to help Infosys list on Nasdaq.
13-When in Doubt, Disclose
Keep your books clean and leave the cooking to the chef. Murthy’s philosophy about being open and transparent has given the company a lot of credibility. He often says, “When in doubt, please disclose.”
14-Leave the Family Out
Murthy told his wife that only one of them could be with the company. Murthy, along with other founders, said that none of their children would work for Infosys. This left no room for nepotism at Infosys.
15-Don’t be a Push over
In 1994, when General Electric wanted to re-negotiate rates, Murthy said no to selling services any cheaper. This helped Infosys not to be overly dependent on any one client.
16-Make hay While the Sun Shines
In late 90′s, India’s tech companies made use of the Y2K opportunity to make themselves known in the global market. For Infosys, it was a great opportunity to enter into long-term relationships with their customers.
17-Brand-aid First, Get Clinical
When the sexual harassment case against Infosys’ top sales guy Phaneesh Murthy threatened to tarnish the company’s brand, Murthy decided to quickly react. He let go of Phaneesh, and settled the case out of court despite Phaneesh wanting to fight it out.
18-Mind your Business, you’ll See Things Coming
Murthy carries and updates a mental model of Infosys’ business all the time. According to him, every leader must have a model, consisting of six to seven parameters that might affect business.
19-Keep it Simple, Not Silly
Keep your life simple and straight. That way, you get to work more and worry less. Murthy is known to be frugal with money. Despite being one of the richest Indians, he leads a simple life. However, he does not cut corners on buying books or brushing up on literature.
20-Founders Keepers, but Not Forever
Murthy’s decision to not allow founders to continue with the company after the age of 65 set another standard for the company. This way, younger leaders at Infosys had a greater chance at the top positions.
21-Talent Spotting and Division of Labour
Murthy is known to have an eye for talent and a talent for dividing labour. Nandan was given sales responsibilities while Kris and Shibu did the tech stuff. N S Raghavan was asked to handle people and Dinesh was assigned quality.
22-Hold on to Your People but don’t Cling
Letting go is never easy but its not good to cling on to your colleagues either. Amongst the founders, Ashok Arora, Nandan Nilekani and K Dinesh have quit Infosys. Infy veteran Mohandas Pai has also left Infosys.
23-Give, it only gets you more
In 2010, the Murthy’s donated $ 5.2 million USD to Harvard University Press for a project that aims to make India’s classical heritage available for generations to come. He is also supporter of the Akshaya Patra Foundation.
24-Do it First and Do it Right
Infosys did many things first. And most things right. For example, it was the first Indian company to list on Nasdaq. It was the first Indian company to make it to the Nasdaq 100 list and it was the first Indian company to attain the highest level of quality certification.
25-Perils of Being a Poster Child
Being the poster child of Indian IT industry, Infosys and Murthy have been at the receiving end of many criticisms. The company has been accused of taking away American jobs and been called a “chop shop.”
26-Get Rich. Honestly
Rich businesses were considered to be dirty in the days when the country had a socialist bent. Infy was a company which got rid of this sentiment. Murthy, with his ‘no compromise’ policy on greasing palms and doing ethical business, set the standards.
27-Do Not be Afraid to Court Controversy
Ever since Infosys became a success, Murthy was under constant public glare. This did not deter the straight talking Murthy from courting controversy or voicing his opinions openly.
28-Invest in Learning
With big investments in training, development and building facilities, India’s IT bell-weather has always been keen on grooming the younger generation. Murthy drove the culture of learning in the company in its early days
.
29-Never Lose the Common Touch
The big man of Indian IT kept his personal life simple. He lives in a simple, middle class house and flies economy till date. Murthy has always been accessible to people around him.
30-Do Good, Look Good
Murthy knew the importance of creating an image for Infosys. He invested in creating a sprawling, world class campuses early on, bigger than any other company’s headquarters in the country, that would make his global customers feel like they were in a global office.

Wednesday, September 7, 2011

An inside look at the National Security Agency (NSA).


The following video is an official release by the NSA, for PR purposes. 
The movie can also be found on the agency's Website.





The Must Watch for all Computer security enthusiasts,


Thanks

How to Bypass Firewall restrictions on outgoing Web connections, using SSH Tunneling


The following procedure allows you to get to blocked Websites, from within a LAN which is subject to Firewall restrictions on outgoing HTTP connections (Web Filtering).

Step 1: How to set up an SSH server in Windows, using CopSSH (an implementation for Windows of OpenSSH).






Step 2: How to create an SSH Tunnel to the server, in order to bypass local Firewall restrictions on outgoing HTTP connections.















Doing the same as above, this time while using Linux instead of Windows (combination of Steps 1+2 described above):



Thanks to Ilan Altir

Hope this three will helped u for better understanding

Tuesday, August 30, 2011

Facebook Recruits NIT Warangal(India) Student For 45lakh per annum




It's raining lucrative jobs at NIT Warangal which has had the best placement season so far. The 51-year-old institute started its recruitment drive on August 15 and already has a 21-year-old fourth year BTech computer science student securing the highest ever pay package of Rs 45 lakh per annum. The offer, made by Facebook, has created a record of sorts here. The institute confirmed that the student will be joining the technical wing of the social networking giant, as soon as he completes his course in March next year.

This has set a new benchmark at NIT Warangal in that the highest salary any student from the institute had bagged so far was Rs 20 lakh per annum. From the 2010-11 batch as many as three students had got jobs that paid them Rs 20 lakh per annum, sources at NIT said. It is not just the 21-year-old whizkid who has bagged a hefty package this year. According to sources, the salaries offered to students so far range anywhere between Rs 5 to Rs 12 lakh per annum. The recruitment process for this year that started on August 15 is expected to last till March 2012. Sources said that most of the recruiters so far are IT companies.

About 30 students from computer science stream of the institute have already been recruited. Eight companies have come in for recruitment in the first round so far. According to NIT officials, this year other than the usual brand of companies several new ones have expressed interest in hiring. "Companies have now shed the recession blues completely and are looking for fresh candidates to recruit. Many of them like Microsoft, Amazon, Oracle and Google could recruit more number of freshers than they did last year," said a senior professor from the institute. Last year, 92% students from the B Tech batch of the institute and 50 % students from M Tech batch were recruited by companies. The average pay package offered by companies last year was between Rs 6 and Rs 7 lakh per annum. The institute officials are expecting a considerable increase in the pay packages this year. NIT professors said that this year, several companies have been vying for the first interview slots with students.

"Most of the IT companies are willing to pay really well to bright students who get absorbed in the first or second interview. The companies who come for interviews later could offer bigger packages to students. We'll have to wait and watch what the salary trend this year is," said an official from NIT.

Saturday, August 27, 2011

Reverse Engineering with "pdf2word" Live



In This "tutorial" we will use a real program called PDF2Word.
I stumbled upon this program when trying to convert a pdf document to a word document (duh..).

The funny thing about this program is that it costs $39.95 and that it is released under the GPL.
Let's start shall we?
1: Obtain a copy of the program at http://www.verypdf.com/pdf2word/index.html
We will use version 2.6 in this tutorial.
2: Obtain a copy of ollydbg at http://www.ollydbg.de/
Start PDF2Word and you will see a screen with title "Please register .."
Type in an emailadress and a bogus Registrationkey and hit OK.
Write down the error message you get since we will need it later on:
"Series number error, please check it and try again."
Now close pdf2word and start Ollydbg. From within ollydbg go to file, open and browse to
C:\Program Files\PDF2Word v2.6\ and select pdf2rtf.exe.

Once the program is loaded rightclick somewhere in the code table and select Search for
Then select All referenced text strings".
A new window will open with all text strings in the program. Scroll up and rightclick once more.
Now select Search for text and put in the errorstring you had earlier in the program:
"Series number error, please check it and try again.".
deselect "Case Sensitive" and press OK.

You will see the following line highlighted:

00429F6F | PUSH pdf2rtf.00468270 |ASCII "Series number error,
 please check it and try again."
Now press to put a breakpoint on it. Directly above you will find some other strings
which might be of interest as well so put a breakpoint on them to. These are:
"Thank you registered" and "Thank you registered VeryPDF PDF2Word v1.6."
Now double click on one of the lines and press <F9> to start the program.
The registration window will come up again, so now put in an emailaddress, a dummy registration-key
and press OK.

Go back to Olly and you will see the following line highlighted:


00429F6F PUSH pdf2rtf.00468270 ;|Text = "Series number error, 
please check it and try again."
This is our errormessage again and the program has stopped right before displaying it.
You can see this errormessage is part of a MessageBoxA call, this is the
API responsible for displaying the Message. If you look a couple of lines earlier you will
see another MessageBoxA call where instead of our errormessage now the
message "Thank you registered VeryPDF PDF2Word v1.6." is located.
This means that if we have the correct serial it will display the registered message, and if
we don't we will get the error.
The program will need to decide if your serial is correct before it can display any of these
messages. The code to do so is usually located close to the messages so scroll up a bit until
you see a piece of code containing a JNE,JE,JNZ or JZ. These are jumps that occur when a specific
event is met.
Usually the event is tested in the code directly in front of it.
In this case you should end up at the following lines:

00429F2E . 85C0 TEST EAX,EAX
00429F30 . 74 39 JE SHORT pdf2rtf.00429F6B
As you can see EAX is tested against itself which in this case will jump to 00429F6B if
EAX has the value 0.
if we trace the jump we will see that it will jump over the registered message and end up
right before the errormessage. This means that if EAX = 0 we will get the errormessage and
our serial is wrong.

At this point we could remove the JE SHORT pdf2rtf.00429F6B code and fill it with
NOP so we will always get the correct message since the jump is never made, but that won't help
here cause if you restart the program it will still ask you to register.

So we need to continue our search. We need to figure out where EAX is getting it's value from.
2 lines above TEST EAX,EAX we see

00429F26 . E8 F5F7FFFF CALL pdf2rtf.00429720
This is a call to a function somewhere else in the program and you can bet your life it is this
function that sets the EAX value.
And so we need to figure out what this function does. To do this we will put another breakpoint
at CALL pdf2rtf.00429720 by highlighting the line and press <F2>.
Now we want to restart the program to make it break on the function call. This is done by
pressing <CTRL>+<F2>. Select YES to the question asked (press left arrow and hit enter) and the program is restarted.
Now press <F9> again to let the program run.
You will see the registrationbox popup again, so put in an emailaddress and a bogus serial and press OK.

As you can see the program will break on the CALL pdf2rtf.00429720 line.
Now press <F7> to step into the call.
The first 4 lines are not of interest to us so we will start analyzing the code from 00429725.
The code we have there is

00429725 |. 8B7424 3C MOV ESI,DWORD PTR SS:[ESP+3C]
00429729 |. 57 PUSH EDI
0042972A |. 8A06 MOV AL,BYTE PTR DS:[ESI]
0042972C |. 8A4E 01 MOV CL,BYTE PTR DS:[ESI+1]
0042972F |. 8A56 0E MOV DL,BYTE PTR DS:[ESI+E]
00429732 |. 884424 18 MOV BYTE PTR SS:[ESP+18],AL
00429736 |. 32C0 XOR AL,AL
00429738 |. 884C24 30 MOV BYTE PTR SS:[ESP+30],CL
0042973C |. 8A4E 0F MOV CL,BYTE PTR DS:[ESI+F]
0042973F |. 884424 19 MOV BYTE PTR SS:[ESP+19],AL
00429743 |. 884424 31 MOV BYTE PTR SS:[ESP+31],AL
00429747 |. 884424 25 MOV BYTE PTR SS:[ESP+25],AL
0042974B |. 884424 0D MOV BYTE PTR SS:[ESP+D],AL

0042974F |. 8A46 02 MOV AL,BYTE PTR DS:[ESI+2]
00429752 |. 3C 24 CMP AL,24
00429754 |. 885424 24 MOV BYTE PTR SS:[ESP+24],DL
00429758 |. 884C24 0C MOV BYTE PTR SS:[ESP+C],CL
0042975C |. 75 52 JNZ SHORT pdf2rtf.004297B0
I've copied the entire block until the first check of the serial above to safe space, so refer
to above code in this explanation.

1st line --> move our entered serial to ESI
2nd line --> not important
3rd line --> move the first byte (character) of our serial into AL
4th line --> move the second byte (first+1) of our serial into CL
5th line --> move the 13th byte (first+E) of our serial into DL
6th line --> move content of AL (first character of our serial) into [ESP+18]
7th line --> clear the contents of AL
8th line --> move the content of CL (second character) into [ESP+30]
9th line --> move the 14th byte (first+F) of our serial into CL
10th,11th,12th,13th line --> clear the contents of [ESP+19],[ESP+31],[ESP+25] & [ESP+D] since AL still is empty.
14th line --> move the third byte (first+2) of our serial into AL
15th line --> compare content of AL with 0x24 (hex for the $ sign)
16th line --> move the 13th byte of our serial into [ESP+24]
17th line --> move the 14th byte of our serial into [ESP+C]
18th line --> Jump to 004297B0 if AL is not equal to 24 ($ sign).

If you trace the jump in the 18th line you will see that it jumps to the following code:

004297B0 |> 5F POP EDI
004297B1 |. 5E POP ESI
004297B2 |. 33C0 XOR EAX,EAX
004297B4 |. 5D POP EBP
004297B5 |. 83C4 30 ADD ESP,30
004297B8 \. C3 RETN
Which means so much as restore values, set EAX to 0 and return from where we were called.
If we let this happen then EAX will be 0 which will give us the errormessage.

So what do we know now from this code?

- AL should be equal to 0x24 or we will get the errormessage
- the program moves the third character of our serial into AL before comparing it to 0x24
- the program moves the 14th byte of our serial into CL

from above we can conclude that the third character of our serial should be a $ sign and
that our serial should be at least 14 characters long since the 14th character is moved.

So our serial will be something like: ..$...........

It's time for the next piece of code:

0042975E |. 8B3D 4C964400 MOV EDI,DWORD PTR DS:[<&MSVCRT.atoi>] ; msvcrt.atoi
00429764 |. 8D5424 0C LEA EDX,DWORD PTR SS:[ESP+C]
00429768 |. 52 PUSH EDX  ; /s
00429769 |. FFD7 CALL EDI  ; \atoi
0042976B |. 8BE8 MOV EBP,EAX
0042976D |. 8D4424 1C LEA EAX,DWORD PTR SS:[ESP+1C]
00429771 |. 50 PUSH EAX
00429772 |. FFD7 CALL EDI
00429774 |. 03E8 ADD EBP,EAX
00429776 |. 83C4 08 ADD ESP,8
00429779 |. 83FD 0A CMP EBP,0A
0042977C |. 75 32 JNZ SHORT pdf2rtf.004297B0
Let's analyze it:

1st line --> move the address of the function MSVCRT.atoi to EDI
atoi is a function which converts ASCII characters to integers (numbers).
2nd line --> put the 16th byte of our serial into EDI
3rd line --> push our byte to the stack as an argument to atoi
4th line --> call atoi. the result will be in EAX
5th line --> move content of EAX into EBP
6th line --> move the first byte of our serial into EAX
7th line --> push our byte to the stack as an argument to atoi
8th line --> call atoi. the result will be in EAX
9th line --> add EAX to EBP and store the result in EBP
10th line --> not important to us
11th line --> compare EBX with the value 0x0A (10)
12th line --> if EBX is not 0x0A then jump to 004297B0 (put 0 into EAX and return).

NOTE:You probably wonder how I figured out which byte is used to put into atoi, well here
it is: I've put in serials multiple times with different digits as values and compared them to
the output of atoi in EAX. This resulted in the corresponding bytes.

What do we know from this code?
- our 16th byte is put into EDI, this means that our serial must be at least 16 characters long
- the 16th byte is put into atoi, which means it much have a value between 0-9
- the 1st byte is put into atoi as well, which also means it must have a value between 0-9
- the value of our first byte is added to the value of our 16th byte and together they must be
equal to 0xA (10).

So now we have the following serial: 1.$............9
as you can imagine the values of our 1st and 16th byte can be anything as long as they both
are digits and when added to eachother are equal to 10 decimal.

Time for the next piece of code:

0042977E |. 8D4C24 24 LEA ECX,DWORD PTR SS:[ESP+24]
00429782 |. 51 PUSH ECX
00429783 |. FFD7 CALL EDI
00429785 |. 8D5424 34 LEA EDX,DWORD PTR SS:[ESP+34]
00429789 |. 8BE8 MOV EBP,EAX
0042978B |. 52 PUSH EDX
0042978C |. FFD7 CALL EDI
0042978E |. 03E8 ADD EBP,EAX
00429790 |. 83C4 08 ADD ESP,8
00429793 |. 83FD 0A CMP EBP,0A
00429796 |. 75 18 JNZ SHORT pdf2rtf.004297B0
Let's analyze it:

1st line --> our 15th byte is put into ECX
2nd line --> push our byte to the stack as an argument to atoi
3rd line --> call atoi. the result will be in EAX
4th line --> our 2nd byte is put into EDX
5th line --> move the result of atoi into EBP
6th line --> push our 2nd byte to the stack as an argument to atoi
7th line --> call atoi. the result will be in EAX
8th line --> add the result of our 15th and 2nd byte together and store in EBP
9th line --> not important to us.
10th line --> check if our 15th byte + our 2nd byte added together is equal to 0x0A (10).
11th line --> if not, then another jump to 004297B0

As you can see this code is very similar to the codeblock before, so I won't explain it any
further.

Now we have the following serial: 12$...........89
We still need to analyze some code, but we're getting somewhere ;-)

Lets take a look at the final piece of code from this call:

00429798 |. 807E 03 24 CMP BYTE PTR DS:[ESI+3],24
0042979C |. 75 12 JNZ SHORT pdf2rtf.004297B0
0042979E |. 8A4E 05 MOV CL,BYTE PTR DS:[ESI+5]
004297A1 |. 33C0 XOR EAX,EAX
004297A3 |. 80F9 23 CMP CL,23
004297A6 |. 5F POP EDI
004297A7 |. 5E POP ESI
004297A8 |. 5D POP EBP
004297A9 |. 0F94C0 SETE AL
004297AC |. 83C4 30 ADD ESP,30
004297AF |. C3 RETN
Analysis:

1st line --> since ESI still contains our serial, the 4th byte is now checked against value 0x24
2nd line --> if not equal, then goto the famous 004297B0
3rd line --> move our 6th byte to CL
4th line --> check if our 6th byte is equal to 0x23 (# sign)
5th,6th,7th line --> not important
8th line --> sets the byte in AL to 1 if our check above is equal
9th line --> not important
10th line --> return to where this call was called from.

What we see here is that our 4th byte is compared to 0x24 ($ sign remember?) as well and that
the 6th byte is compared to 0x23 (the # sign).

If that is correct then AL is set to 1 meaning EAX won't be 0 and so causing the program to
give the registered message.

In short:

-check if 3th == $
-check if 1st + 16th == 10
-check if 15th + 2nd == 10
-check if 4th == $
-check if 6th == #

All other characters are of no importance to create a valid serial so our result will be:

12$$.#........89

You can fill in the remaining dots with anything you like and as long as the rules above are
correct you can change the 1th,2nd,15th and 16th byte as well.

Now close OllyDbg and start PDF2Word.
Enter your email-address and enter one of your newly created serials.

When you press ok you will be thanked for registrering. You're welcome ;-)
The result of your entered information is put in a string and written to
%WINDIR%\system32\pdf2word.dat

In case you want another serial just delete the dat file and put in a new one.

Of course this is a very simple protection, but it is a nice example to cover the basics of
reverse engineering.

Hacking Mind, Learn Faster, Be Smart


If someone granted you one wish, what do you imagine you would want out of life that you haven't gotten yet? For many people, it would be self-improvement and knowledge. New knowledge is the backbone of society's progress. Great thinkers such as Leonardo da Vinci, Thomas Edison, Benjamin Franklin, Albert Einstein, and others' quests for knowledge have led society to many of the marvels we enjoy today. Your quest for knowledge doesn't have to be as Earth-changing as Einstein's, but it can be an important part of your life, leading to a new job, better pay, a new hobby, or simply knowledge for knowledge's sake — whatever is important to you as an end goal. Life-changing knowledge does typically require advanced learning techniques. In fact, it's been said that the average adult only uses 10% of his/her brain. Imagine what we may be capable of with more advanced learning techniques. Here are 77 tips related to knowledge and learning to help you on your quest. A few are specifically for students in traditional learning institutions; the rest for self-starters, or those learning on their own. Happy learning.

Health

  1. Shake a leg. Lack of blood flow is a common reason for lack of concentration. If you've been sitting in one place for awhile, bounce one of your legs for a minute or two. It gets your blood flowing and sharpens both concentration and recall.
  2. Food for thought: Eat breakfast. A lot of people skip breakfast, but creativity is often optimal in the early morning and it helps to have some protein in you to feed your brain. A lack of protein can actually cause headaches.
  3. Food for thought, part 2: Eat a light lunch. Heavy lunches have a tendency to make people drowsy. While you could turn this to your advantage by taking a "thinking nap" (see #23), most people haven't learned how.
  4. Cognitive enhancers: Ginkgo biloba. Ginkgo biloba is a natural supplement that has been used in China and other countries for centuries and has been reputed to reverse memory loss in rats. It's also suggested by some health practitioners as a nootrope and thus a memory enhancer.
  5. Reduce stress + depresssion. Stress and depression may reduce the ability to recall information and thus inhibit learning. Sometimes, all you need to reduce depression is more white light and fewer refined foods.

Balance

  1. Sleep on it. Dr. Maxwell Maltz wrote about in his book Psycho-Cybernetics about a man who was was paid good money to come up with ideas. He would lock his office door, close the blinds, turn off the lights. He'd focus on the problem at hand, then take a short nap on a couch. When he awoke, he usually had the problem solved.
  2. Take a break. Change phyical or mental perspective to lighten the invisible stress that can sometimes occur when you sit in one place too long, focused on learning. Taking a 5-15 minute break every hour during study sessions is more beneficial than non-stop study. It gives your mind time to relax and absorb information. If you want to get really serious with breaks, try a 20 minute ultradian break as part of every 90 minute cycle. This includes a nap break, which is for a different purpose than #23.
  3. Take a hike. Changing your perspective often relieves tension, thus freeing your creative mind. Taking a short walk around the neighborhood may help.
  4. Change your focus. Sometimes there simply isn't enough time to take a long break. If so, change subject focus. Alternate between technical and non-technical subjects.

Perspective and Focus

  1. Change your focus, part 2. There are three primary ways to learn: visual, kinesthetic, and auditory. If one isn't working for you, try another.
  2. Do walking meditation. If you're taking a hike (#25), go one step further and learn walking meditation as a way to tap into your inner resources and your strengthen your ability to focus. Just make sure you're not walking inadvertently into traffic.
  3. Focus and immerse yourself. Focus on whatever you're studying. Don't try to watch TV at the same time or worry yourself about other things. Anxiety does not make for absorption of information and ideas.
  4. Turn out the lights. This is a way to focus, if you are not into meditating. Sit in the dark, block out extraneous influences. This is ideal for learning kinesthetically, such as guitar chord changes.
  5. Take a bath or shower. Both activities loosen you up, making your mind more receptive to recognizing brilliant ideas.

Recall Techniques

  1. Listen to music. Researchers have long shown that certain types of music are a great "key" for recalling memories. Information learned while listening to a particular song or collection can often be recalled simply by "playing" the songs mentally.
  2. Speedread. Some people believe that speedreading causes you to miss vital information. The fact remains that efficient speedreading results in filtering out irrelevant information. If necessary, you can always read and re-read at slower speeds. Slow reading actually hinders the ability to absorb general ideas. (Although technical subjects often requirer slower reading.) If you're reading online, you can try the free Spreeder Web-based application.
  3. Use acronyms and other mnemonic devices. Mnemonics are essentially tricks for remembering information. Some tricks are so effective that proper application will let you recall loads of mundane information years later.

Visual Aids

  1. Every picture tells a story. Draw or sketch whatever it is you are trying to achieve. Having a concrete goal in mind helps you progress towards that goal.
  2. Brainmap it. Need to plan something? Brain maps, or mind maps, offer a compact way to get both an overview of a project as well as easily add details. With mind maps, you can see the relationships between disparate ideas and they can also act as a receptacle for a brainstorming session.
  3. Learn symbolism and semiotics. Semiotics is the study of signs and symbols. Having an understanding of the symbols of a particular discipline aids in learning, and also allows you to record information more efficiently.
  4. Use information design. When you record information that has an inherent structure, applying information design helps convey that information more clearly. A great resource is Information Aesthetics, which gives examples of information design and links to their sources.
  5. Use visual learning techniques. Try gliffy for structured diagrams. Also see Inspiration.com for an explanation of webs, idea maps, concept maps, and plots.
  6. Map your task flow. Learning often requires gaining knowledge in a specific sequence. Organizing your thoughts on what needs to be done is a powerful way to prepare yourself to complete tasks or learn new topics.

Verbal and Auditory Techniques

  1. Stimulate ideas. Play rhyming games, utter nonsense words. These loosen you up, making you more receptive to learning.
  2. Brainstorm. This is a time-honored technique that combines verbal activity, writing, and collaboration. (One person can brainstorm, but it's more effective in a group.) It's fruitful if you remember some simple rules: Firstly, don't shut anyone's idea out. Secondly, don't "edit" in progress; just record all ideas first, then dissect them later. Participating in brainstorming helps assess what you already know about something, and what you didn't know.
  3. Learn by osmosis. Got an iPod? Record a few of your own podcasts, upload them to your iPod and sleep on it. Literally. Put it under your pillow and playback language lessons or whatever.
  4. Cognitive enhancers: binaural beats. Binaural beats involve playing two close frequencies simultaneously to produce alpha, beta, delta, and theta waves, all of which produce either sleeping, restfulness, relaxation, meditativeness, alertness, or concentration. Binaural beats are used in conjunction with other excercises for a type of super-learning.
  5. Laugh. Laughing relaxes the body. A relaxed body is more receptive to new ideas.

Kinesthetic Techniques

  1. Write, don't type. While typing your notes into the computer is great for posterity, writing by hand stimulates ideas. The simple act of holding and using a pen or pencil massages acupuncture points in the hand, which in turn stimulates ideas.
  2. Carry a quality notebook at all times. Samuel Taylor Coleridge dreamed the words of the poem "In Xanadu (did Kubla Khan)...". Upon awakening, he wrote down what he could recall, but was distracted by a visitor and promptly forgot the rest of the poem. Forever. If you've been doing "walking meditation" or any kind of meditation or productive napping, ideas may suddenly come to you. Record them immediately.
  3. Keep a journal. This isn't exactly the same as a notebook. Journaling has to do with tracking experiences over time. If you add in visual details, charts, brainmaps, etc., you have a much more creative way to keep tabs on what you are learning.
  4. Organize. Use sticky colored tabs to divide up a notebook or journal. They are a great way to partition ideas for easy referral.
  5. Use post-it notes. Post-it notes provide a helpful way to record your thoughts about passages in books without defacing them with ink or pencil marks.

Self-Motivation Techniques

  1. Give yourself credit. Ideas are actually a dime a dozen. If you learn to focus your mind on what results you want to achieve, you'll recognize the good ideas. Your mind will become a filter for them, which will motivate you to learn more.
  2. Motivate yourself. Why do you want to learn something? What do want to achieve through learning? If you don't know why you want to learn, then distractions will be far more enticing.
  3. Set a goal. W. Clement Stone once said "Whatever the mind of man can conceive, it can achieve." It's an amazing phenomenon in goal achievement. Prepare yourself by whatever means necessary, and hurdles will seem surmountable. Anyone who has experienced this phenomenon understands its validity.
  4. Think positive. There's no point in setting learning goals for yourself if you don't have any faith in your ability to learn.
  5. Organize, part 2. Learning is only one facet of the average adult's daily life. You need to organize your time and tasks else you might find it difficult to fit time in for learning. Try Neptune for a browser-based application for "getting things done."
  6. Every skill is learned. With the exception of bodily functions, every skill in life is learned. Generally speaking, if one person can learn something, so can you. It may take you more effort, but if you've set a believable goal, it's likely an achievable goal.
  7. Prepare yourself for learning. Thinking positive isn't sufficient for successfully achieving goals. This is especially important if you are an adult, as you'll probably have many distractions surrounding your daily life. Implement ways to reduce distractions, at least for a few hours at a time, else learning will become a frustrating experience.
  8. Prepare yourself, part 2. Human nature is such that not everyone in your life will be a well-wisher in your self-improvement and learning plans. They may intentionally or subconsciously distract you from your goal. If you have classes to attend after work, make sure that work colleagues know this, that you are unable to work late. Diplomacy works best if you think your boss is intentionally giving you work on the days he/she knows you have to leave. Reschedule lectures to a later time slot if possible/ necessary.
  9. Constrain yourself. Most people need structure in their lives. Freedom is sometimes a scary thing. It's like chaos. But even chaos has order within. By constraining yourself — say giving yourself deadlines, limiting your time on an idea in some manner, or limiting the tools you are working with — you can often accomplish more in less time.

Supplemental Techniques

  1. Read as much as you can. How much more obvious can it get? Use Spreeder (#33) if you have to. Get a breadth of topics as well as depth.
  2. Cross-pollinate your interests. Neurons that connect to existing neurons give you new perspectives and abilities to use additional knowledge in new ways.
  3. Learn another language. New perspectives give you the ability to cross-pollinate cultural concepts and come up with new ideas. As well, sometimes reading a book in its original language will provide you with insights lost in translation.
  4. Learn how to learn. Management Help has a resource page, as does SIAST (Virtual Campus), which links to articles about learning methods. They are geared towards online learning, but no doubt you gain something from them for any type of learning. If you are serious about optimum learning, read Headrush's Crash course in learning theory.
  5. Learn what you know and what you don't. Many people might say, "I'm dumb," or "I don't know anything about that." The fact is, many people are wholly unaware of what they already know about a topic. If you want to learn about a topic, you need to determine what you already know, figure out what you don't know, and then learn the latter.
  6. Multi-task through background processes. Effective multi-tasking allows you to bootstrap limited time to accomplish several tasks. Learning can be bootstrapped through multi-tasking, too. By effective multitasking, I don't mean doing two or more things at exactly the same time. It's not possible. However, you can achieve the semblance of effective multitasking with the right approach, and by prepping your mind for it. For example, a successful freelance writer learns to manage several articles at the same time. Research the first essay, and then let the background processes of your mind takeover. Move on consciously to the second essay. While researching the second essay, the first one will often "write itself." Be prepared to record it when it "appears" to you.
  7. Think holistically. Holistic thinking might be the single most "advanced" learning technique that would help students. But it's a mindset rather than a single technique.
  8. Use the right type of repetition. Complex concepts often require revisting in order to be fully absorbed. Sometimes, for some people, it may actually take months or years. Repetition of concepts and theory with various concrete examples improves absorption and speeds up learning.
  9. Apply the Quantum Learning (QL) model. The Quantum Learning model is being applied in some US schools and goes beyond typical education methods to engage students.
  10. Get necessary tools. There are obviously all kinds of tools for learning. If you are learning online like a growing number of people these days, then consider your online tools. One of the best tools for online research is the Firefox web browser, which has loads of extensions (add-ons) with all manner of useful features. One is Googlepedia, which simultaneously displays Google search engine listings, when you search for a term, with related entries from Wikipedia.
  11. Get necessary tools, part 2. This is a very niche tip, but if you want to learn fast-track methods for building software, read Getting Real from 37 Signals. The Web page version is free. The techniques in the book have been used to create Basecamp, Campfire, and Backpack web applications in a short time frame. Each of these applications support collaboration and organization.
  12. Learn critical thinking. As Keegan-Michael Key's character on MadTV might say, critical thinking takes analysis to "a whole notha level". Read Wikipedia's discourse on critical thinking as a starting point. It involves good analytical skills to aid the ability to learn selectively.
  13. Learn complex problem solving. For most people, life is a series of problems to be solved. Learning is part of the process. If you have a complex problem, you need to learn the art of complex problem solving. [The latter page has some incredible visual information.]

For Teachers, Tutors, and Parents

  1. Be engaging. Lectures are one-sided and often counter-productive. Information merely heard or witnessed (from a chalkboard for instance) is often forgotten. Teaching is not simply talking. Talking isn't enough. Ask students questions, present scenarios, engage them.
  2. Use information pyramids. Learning happens in layers. Build base knowledge upon which you can add advanced concepts.
  3. Use video games. Video games get a bad rap because of certain violent games. But video games in general can often be an effective aid to learning.
  4. Role play. Younger people often learn better by being part of a learning experience. For example, history is easier to absorb through reenactments.
  5. Apply the 80/20 rule. This rule is often interpreted in dfferent ways. In this case, the 80/20 rule means that some concepts, say about 20% of a curriculum, require more effort and time, say about 80%, than others. So be prepared to expand on complex topics.
  6. Tell stories. Venus Flytrap, a character from the sitcom WKRP in Cincinnati, once taught a student gang member about atoms, electrons, and protons by saying that an atom was one big neighborhood, and the protons and neutrons had their own smaller neighborhoods and never mixed. Just like rival gangs. The story worked, and understanding sparked in the students eyes.
  7. Go beyond the public school curriculum. The public school system is woefully lacking in teaching advanced learning and brainstorming methods. It's not that the methods cannot be taught; they just aren't. To learn more, you have to pay a premium in additional time and effort, and sometimes money for commercially available learning tools. There's nothing wrong with that in itself, but what is taught in schools needs to be expanded. This article's author has proven that a nine-year old can learn (some) university level math, if the learning is approached correctly.
  8. Use applied learning. If a high school student were having trouble in math, say with fractions, one example of applied learning might be photography, lenses, f-stops, etc. Another example is cooking and measurement of ingredients. Tailor the applied learning to the interest of the student.

For Students and Self-Studiers

  1. Be engaged. Surprise. Sometimes students are bored because they know more than is being taught, maybe even more than a teacher. (Hopefully teachers will assess what each student already knows.) Students should discuss with a teacher if they feel that the material being covered is not challenging. Also consider asking for additional materials.
  2. Teach yourself. Teachers cannot always change their curricula. If you're not being challenged, challenge yourself. Some countries still apply country-wide exams for all students. If your lecturer didn't cover a topic, you should learn it on your own. Don't wait for someone to teach you. Lectures are most effective when you've pre-introduced yourself to concepts.
  3. Collaborate. If studying by yourself isn't working, maybe a study group will help.
  4. Do unto others: teach something. The best way to learn something better is to teach it to someone else. It forces you to learn, if you are motivated enough to share your knowledge.
  5. Write about it. An effective way to "teach" something is to create an FAQ or a wiki containing everything you know about a topic. Or blog about the topic. Doing so helps you to realize what you know and more importantly what you don't. You don't even have to spend money if you grab a freebie account with Typepad, Wordpress, or Blogger.
  6. Learn by experience. Pretty obvious, right? It means put in the necessary time. An expert is often defined as someone who has put in 10,000 hours into some experience or endeavor. That's approximately 5 years of 40 hours per week, every week. Are you an expert without realizing it? If you're not, do you have the dedication to be an expert?
  7. Quiz yourself. Testing what you've learned will reinforce the information. Flash cards are one of the best ways, and are not just for kids.
  8. Learn the right things first. Learn the basics. Case in point: a frustrating way to learn a new language is to learn grammar and spelling and sentence constructs first. This is not the way a baby learns a language, and there's no reason why an adult or young adult has to start differently, despite "expert" opinion. Try for yourself and see the difference.
  9. Plan your learning. If you have a long-term plan to learn something, then to quote Led Zeppelin, "There are two paths you can go by." You can take a haphazard approach to learning, or you can put in a bit of planning and find an optimum path. Plan your time and balance your learning and living.

Parting Advice

  1. Persist. Don't give up learning in the face of intimdating tasks. Anything one human being can learn, most others can as well. Wasn't it Einstein that said, "Genius is 1% inspiration and 99% perspiration"? Thomas Edison said it, too.
  2. Defy the experts. Dyslexia, in a nutshell, is the affliction of mentally jumbling letters and digits, causing difficulties in reading, writing and thus learning. Sometimes spoken words or numbers get mixed up as well. In the past, "experts" declared dyslexic children stupid. Later, they said they were incapable of learning. This author has interacted with and taught dyslexic teens. It's possible. Helen Keller had no experience of sight, sound, or speech, and yet she learned. Conclusion: There is more than one way to learn; never believe you cannot.
  3. Challenge yourself. People are often more intelligent than they realize. In a world that compartmentalizes and categorizes everything, not everyone is sure where they fit in. And genius can be found in many walks of life. If you honestly suspect that there's more to you than has been "allowed" to be let out, try an IQ test such as the one offered by MENSA. It's unlike the standardized IQ tests given in many schools. You know the kind — the ones which traumatize many young students into thinking they are stupid, simply because the tests don't really assess all student's knowledge and learning ability. And the ability to learn is far, far more important than what you already know.
  4. Party before an exam. Well, don't go that far. The key is to relax. The worse thing to do is cram the night before an exam. If you don't already know a subject by then, cramming isn't going to help. If you have studied, simply review the topic, then go do something pleasant (no more studying). Doing so tells your brain that you are prepared and that you will be able to recall anything that you have already learned. On the other hand, if you didn't spend the semester learning the ideas you need, you might as well go party anyways because cramming at the last minute isn't going to help much at that point.
  5. Don't worry; learn happy. Have a real passion for learning