Showing posts with label Education. Show all posts
Showing posts with label Education. Show all posts

Sunday, 18 December 2016

Advanced Shellcoding Techniques



This paper assumes a working knowledge of basic shellcoding techniques, and x86 assembly, I will not rehash these in this paper.  I hope to teach you some of the lesser known shellcoding techniques that I have picked up, which will allow you to write smaller and better shellcodes.
 I do not claim to have invented any of these techniques, except for the one that uses the div instruction.
The multiplicity of mul

This technique was originally developed by Sorbo of darkircop.net.  The mul instruction may, on the surface, seem mundane, and it's purpose obvious.  However, when faced with the difficult challenge of shrinking your shellcode, it proves to be quite useful.  First some background information on the mul instruction itself.

mul performs an unsigned multiply of two integers.  It takes only one operand, the other is implicitly specified by the %eax register.  So, a  common mul instruction might look something like this:

movl $0x0a,%eax
mul $0x0a

This would multiply the value stored in %eax by the operand of mul, which in this case would be 10*10.  The result is then implicitly stored in EDX:EAX.  The result is stored over a span of two registers because it has the potential to be considerably larger than the previous value, possibly exceeding the capacity of a single register(this is also how floating points are stored in some cases, as an interesting sidenote).

So, now comes the ever-important question.  How can we use these attributes to our advantage when writing shellcode?  Well, let's think for a second, the instruction takes only one operand, therefore, since it is a very common instruction, it will generate only two bytes in our final shellcode.  It multiplies whatever is passed to it by the value stored in %eax, and stores the value in both %edx and %eax, completely overwriting the contents of both registers, regardless of whether it is necessary to do so, in order to store the result of the multiplication.  Let's put on our mathematician hats for a second, and consider this, what is the only possible result of a multiplication by 0?  The answer, as you may have guessed, is 0.  I think it's about time for some example code, so here it is:

xorl %ecx,%ecx
mul %ecx

What is this shellcode doing?  Well, it 0's out the %ecx register using the xor instruction, so we now know that %ecx is 0.  Then it does a mul %ecx, which as we just learned, multiplies it's operand by the value in %eax, and then proceeds to store the result of this multiplication in EDX:EAX.  So, regardless of %eax's previous contents, %eax must now be 0.  However that's not all, %edx is 0'd now too, because, even though no overflow occurs, it still overwrites the %edx register with the sign bit(left-most bit) of %eax.  Using this technique we can zero out three registers in only three bytes, whereas by any other method(that I know of) it would have taken at least six.


The div instruction

Div is very similar to mul, in that it takes only one operand and implicitly divides the operand by the value in %eax.  Also like, mul it stores the result of the divide in %eax.  Again, we will require the mathematical side of our brains to figure out how we can take advantage of this instruction.  But first, let's think about what is normally stored in the %eax register.  The %eax register holds the return value of functions and/or syscalls.  Most syscalls that are used in shellcoding will return -1(on failure) or a positive value of some kind, only rarely will they return 0(though it does occur).  So, if we know that after a syscall is performed, %eax will have a non-zero value, and that  the instruction divl %eax will divide %eax by itself, and then store the result in %eax, we can say that executing the divl %eax instruction after a syscall will put the value 1 into %eax.  So...how is this applicable to shellcoding? Well, their is another important thing that %eax is used for, and that is to pass the specific syscall that you would like to call to int $0x80.  It just so happens that the syscall that corresponds to the value 1 is exit().  Now for an example:

     
xorl %ebx,%ebx
mul %ebx
push %edx
pushl   $0x3268732f
pushl   $0x6e69622f
mov %esp, %ebx
push %edx
push %ebx
mov %esp,%ecx
movb $0xb, %al  #execve() syscall, doesn't return at all unless it fails, in which case it returns -1
int $0x80

divl %eax  # -1 / -1 = 1
int $0x80

Now, we have a 3 byte exit function, where as before it was 5 bytes.  However, there is a catch, what if a syscall does return 0?  Well in the odd situation in which that could happen, you could do many different things, like inc %eax, dec %eax, not %eax anything that will make %eax non-zero.  Some people say that exit's are not important in shellcode, because your code gets executed regardless of whether or not it exits cleanly.  They are right too, if you really need to save 3 bytes to fit your shellcode in somewhere, the exit() isn't worth keeping.  However, when your code does finish, it will try to execute whatever was after your last instruction, which will most likely produce a SIG ILL(illegal instruction) which is a rather odd error, and will be logged by the system.  So, an exit() simply adds an extra layer of stealth to your exploit, so that even if it fails or you can't wipe all the logs, at least this part of your presence will be clear.

Unlocking the power of leal

The leal instruction is an often neglected instruction in shellcode, even though it is quite useful.  Consider this short piece of shellcode.

xorl %ecx,%ecx
leal 0x10(%ecx),%eax

This will load the value 17 into eax, and clear all of the extraneous bits of eax.  This occurs because the leal instruction loads a variable of the type long into it's desitination operand.  In it's normal usage, this would load the address of a variable into a register, thus creating a pointer of sorts.  However, since ecx is 0'd and 0+17=17, we load the value 17 into eax instead of any kind of actual address.  In a normal shellcode we would do something like this, to accomplish the same thing:

xorl %eax,%eax
movb $0x10,%eax

I can hear you saying, but that shellcode is a byte shorter than the leal one, and you're quite right.  However, in a real shellcode you may already have to 0 out a register like ecx(or any other register), so the xorl instruction in the leal shellcode isn't counted.  Here's an example:

xorl    %eax,%eax
xorl    %ebx,%ebx
movb    $0x17,%al
int    $0x80
     
xorl %ebx,%ebx
leal 0x17(%ebx),%al
int $0x80

Both of these shellcodes call setuid(0), but one does it in 7 bytes while the other does it in 8.  Again, I hear you saying but that's only one byte it doesn't make that much of a difference, and you're right, here it doesn't make much of a difference(except for in shellcode-size pissing contests =p), but when applied to much larger shellcodes, which have many function calls and need to do things like this frequently, it can save quite a bit of space.



Conclusion

I hope you all learned something, and will go out and apply your knowledge to create smaller and better shellcodes.  If you know who invented  the leal technique, please tell me and I will credit him/her.  

All about ftp must read

Well, since many of us have always wondered this, here it is. Long and drawn out. Also, before attempting this, realize one thing; You will have to give up your time, effort, bandwidth, and security to have a quality ftp server.That being said, here it goes. First of all, find out if your IP (Internet Protocol) is static (not changing)

or dynamic (changes everytime you log on). To do this, first consider the fact if you have a dial up modem. If you do, chances are about 999 999 out of 1 000 000 that your IP is dynamic. To make it static, just go to a place like h*tp://www.myftp.org/ to register for a static ip address.

You'll then need to get your IP. This can be done by doing this:
Going to Start -> Run -> winipcfg or www.ask.com and asking 'What is my IP?'

After doing so, you'll need to download an FTP server client. Personally, I'd recommend G6 FTP Server, Serv-U FTPor Bullitproof v2.15 all three of which are extremely reliable, and the norm of the ftp world.
You can download them on this site: h*tp://www.liaokai.com/softw_en/d_index.htm

First, you'll have to set up your ftp. For this guide, I will use step-by-step instructions for G6. First, you'll have to go into 'Setup -> General'. From here, type in your port # (default is 21). I recommend something unique, or something a bit larger (ex: 3069). If you want to, check the number of max users (this sets the amount of simultaneous maximum users on your server at once performing actions - The more on at once, the slower the connection and vice versa).

The below options are then chooseable:
-Launch with windows
-Activate FTP Server on Start-up
-Put into tray on startup
-Allow multiple instances
-Show "Loading..." status at startup
-Scan drive(s) at startup
-Confirm exit

You can do what you want with these, as they are pretty self explanatory. The scan drive feature is nice, as is the 2nd and the last option. From here, click the 'options' text on the left column.

To protect your server, you should check 'login check' and 'password check', 'Show relative path (a must!)', and any other options you feel you'll need. After doing so, click the 'advanced' text in the left column. You should then leave the buffer size on the default (unless of course you know what you're doing ), and then allow the type of ftp you want.

Uploading and downloading is usually good, but it's up to you if you want to allow uploads and/or downloads. For the server priority, that will determine how much conventional memory will be used and how much 'effort' will go into making your server run smoothly.

Anti-hammering is also good, as it prevents people from slowing down your speed. From here, click 'Log Options' from the left column. If you would like to see and record every single command and clutter up your screen, leave the defaults.

But, if you would like to see what is going on with the lowest possible space taken, click 'Screen' in the top column. You should then check off 'Log successful logins', and all of the options in the client directry, except 'Log directory changes'. After doing so, click 'Ok' in the bottom left corner.

You will then have to go into 'Setup -> User Accounts' (or ctrl & u). From here, you should click on the right most column, and right click. Choose 'Add', and choose the username(s) you would like people to have access to.

After giving a name (ex: themoonlanding), you will have to give them a set password in the bottom column (ex: wasfaked). For the 'Home IP' directory, (if you registered with a static server, check 'All IP Homes'. If your IP is static by default, choose your IP from the list. You will then have to right click in the very center column, and choose 'Add'.

From here, you will have to set the directory you want the people to have access to. After choosing the directory, I suggest you choose the options 'Read', 'List', and 'Subdirs', unless of course you know what you're doing . After doing so, make an 'upload' folder in the directory, and choose to 'add' this folder seperately to the center column. Choose 'write', 'append', 'make', 'list', and 'subdirs'. This will allow them to upload only to specific folders (your upload folder).

Now click on 'Miscellaneous' from the left column. Choose 'enable account', your time-out (how long it takes for people to remain idle before you automatically kick them off), the maximum number of users for this name, the maximum number of connections allowed simultaneously for one ip address, show relative path (a must!), and any other things at the bottom you'd like to have. Now click 'Ok'.
**Requested**


From this main menu, click the little boxing glove icon in the top corner, and right click and unchoose the hit-o-meter for both uploads and downloads (with this you can monitor IP activity). Now click the lightning bolt, and your server is now up and running.

Post your ftp info, like this:

213.10.93.141 (or something else, such as: 'f*p://example.getmyip.com')

User: *** (The username of the client)

Pass: *** (The password)

Port: *** (The port number you chose)

So make a FTP and join the FTP section


Listing The Contents Of A Ftp:

Listing the content of a FTP is very simple.
You will need FTP Content Maker, which can be downloaded from here:
ht*p://www.etplanet.com/download/application/FTP%20Content%20Maker%201.02.zip

1. Put in the IP of the server. Do not put "ftp://" or a "/" because it will not work if you do so.
2. Put in the port. If the port is the default number, 21, you do not have to enter it.
3. Put in the username and password in the appropriate fields. If the login is anonymous, you do not have to enter it.
4. If you want to list a specific directory of the FTP, place it in the directory field. Otherwise, do not enter anything in the directory field.
5. Click "Take the List!"
6. After the list has been taken, click the UBB output tab, and copy and paste to wherever you want it.


If FTP Content Maker is not working, it is probably because the server does not utilize Serv-U Software.

If you get this error message:
StatusCode = 550
LastResponse was : 'Unable to open local file test-ftp'
Error = 550 (Unable to open local file test-ftp)
Error = Unable to open local file test-ftp = 550
Close and restart FTP Content Maker, then try again.




error messages:

110 Restart marker reply. In this case, the text is exact and not left to the particular implementation; it must read: MARK yyyy = mmmm Where yyyy is User-process data stream marker, and mmmm server's equivalent marker (note the spaces between markers and "=").
120 Service ready in nnn minutes.
125 Data connection already open; transfer starting.
150 File status okay; about to open data connection.
200 Command okay.
202 Command not implemented, superfluous at this site.
211 System status, or system help reply.
212 Directory status.
213 File status.
214 Help message. On how to use the server or the meaning of a particular non-standard command. This reply is useful only to the human user.
215 NAME system type. Where NAME is an official system name from the list in the Assigned Numbers document.
220 Service ready for new user.
221 Service closing control connection. Logged out if appropriate.
225 Data connection open; no transfer in progress.
226 Closing data connection. Requested file action successful (for example, file transfer or file abort).
227 Entering Passive Mode (h1,h2,h3,h4,p1,p2).
230 User logged in, proceed.
250 Requested file action okay, completed.
257 "PATHNAME" created.
331 User name okay, need password.
332 Need account for login.
350 Requested file action pending further information.
421 Too many users logged to the same account
425 Can't open data connection.
426 Connection closed; transfer aborted.
450 Requested file action not taken. File unavailable (e.g., file busy).
451 Requested action aborted: local error in processing.
452 Requested action not taken. Insufficient storage space in system.
500 Syntax error, command unrecognized. This may include errors such as command line too long.
501 Syntax error in parameters or arguments.
502 Command not implemented.
503 Bad sequence of commands.
504 Command not implemented for that parameter.
530 Not logged in.
532 Need account for storing files.
550 Requested action not taken. File unavailable (e.g., file not found, no access).
551 Requested action aborted: page type unknown.
552 Requested file action aborted. Exceeded storage allocation (for current directory or dataset).
553 Requested action not taken. File name not allowed.


 Active FTP vs. Passive FTP, a Definitive Explanation

Introduction
One of the most commonly seen questions when dealing with firewalls and other Internet connectivity issues is the difference between active and passive FTP and how best to support either or both of them. Hopefully the following text will help to clear up some of the confusion over how to support FTP in a firewalled environment.

This may not be the definitive explanation, as the title claims, however, I've heard enough good feedback and seen this document linked in enough places to know that quite a few people have found it to be useful. I am always looking for ways to improve things though, and if you find something that is not quite clear or needs more explanation, please let me know! Recent additions to this document include the examples of both active and passive command line FTP sessions. These session examples should help make things a bit clearer. They also provide a nice picture into what goes on behind the scenes during an FTP session. Now, on to the information...



The Basics
FTP is a TCP based service exclusively. There is no UDP component to FTP. FTP is an unusual service in that it utilizes two ports, a 'data' port and a 'command' port (also known as the control port). Traditionally these are port 21 for the command port and port 20 for the data port. The confusion begins however, when we find that depending on the mode, the data port is not always on port 20.



Active FTP
In active mode FTP the client connects from a random unprivileged port (N > 1024) to the FTP server's command port, port 21. Then, the client starts listening to port N+1 and sends the FTP command PORT N+1 to the FTP server. The server will then connect back to the client's specified data port from its local data port, which is port 20.

From the server-side firewall's standpoint, to support active mode FTP the following communication channels need to be opened:

FTP server's port 21 from anywhere (Client initiates connection)
FTP server's port 21 to ports > 1024 (Server responds to client's control port)
FTP server's port 20 to ports > 1024 (Server initiates data connection to client's data port)
FTP server's port 20 from ports > 1024 (Client sends ACKs to server's data port)


In step 1, the client's command port contacts the server's command port and sends the command PORT 1027. The server then sends an ACK back to the client's command port in step 2. In step 3 the server initiates a connection on its local data port to the data port the client specified earlier. Finally, the client sends an ACK back as shown in step 4.

The main problem with active mode FTP actually falls on the client side. The FTP client doesn't make the actual connection to the data port of the server--it simply tells the server what port it is listening on and the server connects back to the specified port on the client. From the client side firewall this appears to be an outside system initiating a connection to an internal client--something that is usually blocked.



Active FTP Example
Below is an actual example of an active FTP session. The only things that have been changed are the server names, IP addresses, and user names. In this example an FTP session is initiated from testbox1.slacksite.com (192.168.150.80), a linux box running the standard FTP command line client, to testbox2.slacksite.com (192.168.150.90), a linux box running ProFTPd 1.2.2RC2. The debugging (-d) flag is used with the FTP client to show what is going on behind the scenes. Everything in red is the debugging output which shows the actual FTP commands being sent to the server and the responses generated from those commands. Normal server output is shown in black, and user input is in bold.

There are a few interesting things to consider about this dialog. Notice that when the PORT command is issued, it specifies a port on the client (192.168.150.80) system, rather than the server. We will see the opposite behavior when we use passive FTP. While we are on the subject, a quick note about the format of the PORT command. As you can see in the example below it is formatted as a series of six numbers separated by commas. The first four octets are the IP address while the second two octets comprise the port that will be used for the data connection. To find the actual port multiply the fifth octet by 256 and then add the sixth octet to the total. Thus in the example below the port number is ( (14*256) + 178), or 3762. A quick check with netstat should confirm this information.

testbox1: {/home/p-t/slacker/public_html} % ftp -d testbox2
Connected to testbox2.slacksite.com.
220 testbox2.slacksite.com FTP server ready.
Name (testbox2:slacker): slacker
---> USER slacker
331 Password required for slacker.
Password: TmpPass
---> PASS XXXX
230 User slacker logged in.
---> SYST
215 UNIX Type: L8
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
ftp: setsockopt (ignored): Permission denied
---> PORT 192,168,150,80,14,178
200 PORT command successful.
---> LIST
150 Opening ASCII mode data connection for file list.
drwx------ 3 slacker users 104 Jul 27 01:45 public_html
226 Transfer complete.
ftp> quit
---> QUIT
221 Goodbye.


Passive FTP
In order to resolve the issue of the server initiating the connection to the client a different method for FTP connections was developed. This was known as passive mode, or PASV, after the command used by the client to tell the server it is in passive mode.

In passive mode FTP the client initiates both connections to the server, solving the problem of firewalls filtering the incoming data port connection to the client from the server. When opening an FTP connection, the client opens two random unprivileged ports locally (N > 1024 and N+1). The first port contacts the server on port 21, but instead of then issuing a PORT command and allowing the server to connect back to its data port, the client will issue the PASV command. The result of this is that the server then opens a random unprivileged port (P > 1024) and sends the PORT P command back to the client. The client then initiates the connection from port N+1 to port P on the server to transfer data.

From the server-side firewall's standpoint, to support passive mode FTP the following communication channels need to be opened:

FTP server's port 21 from anywhere (Client initiates connection)
FTP server's port 21 to ports > 1024 (Server responds to client's control port)
FTP server's ports > 1024 from anywhere (Client initiates data connection to random port specified by server)
FTP server's ports > 1024 to remote ports > 1024 (Server sends ACKs (and data) to client's data port)



In step 1, the client contacts the server on the command port and issues the PASV command. The server then replies in step 2 with PORT 2024, telling the client which port it is listening to for the data connection. In step 3 the client then initiates the data connection from its data port to the specified server data port. Finally, the server sends back an ACK in step 4 to the client's data port.

While passive mode FTP solves many of the problems from the client side, it opens up a whole range of problems on the server side. The biggest issue is the need to allow any remote connection to high numbered ports on the server. Fortunately, many FTP daemons, including the popular WU-FTPD allow the administrator to specify a range of ports which the FTP server will use. See Appendix 1 for more information.

The second issue involves supporting and troubleshooting clients which do (or do not) support passive mode. As an example, the command line FTP utility provided with Solaris does not support passive mode, necessitating a third-party FTP client, such as ncftp.

With the massive popularity of the World Wide Web, many people prefer to use their web browser as an FTP client. Most browsers only support passive mode when accessing ftp:// URLs. This can either be good or bad depending on what the servers and firewalls are configured to support.



Passive FTP Example
Below is an actual example of a passive FTP session. The only things that have been changed are the server names, IP addresses, and user names. In this example an FTP session is initiated from testbox1.slacksite.com (192.168.150.80), a linux box running the standard FTP command line client, to testbox2.slacksite.com (192.168.150.90), a linux box running ProFTPd 1.2.2RC2. The debugging (-d) flag is used with the FTP client to show what is going on behind the scenes. Everything in red is the debugging output which shows the actual FTP commands being sent to the server and the responses generated from those commands. Normal server output is shown in black, and user input is in bold.

Notice the difference in the PORT command in this example as opposed to the active FTP example. Here, we see a port being opened on the server (192.168.150.90) system, rather than the client. See the discussion about the format of the PORT command above, in the Active FTP Example section.

testbox1: {/home/p-t/slacker/public_html} % ftp -d testbox2
Connected to testbox2.slacksite.com.
220 testbox2.slacksite.com FTP server ready.
Name (testbox2:slacker): slacker
---> USER slacker
331 Password required for slacker.
Password: TmpPass
---> PASS XXXX
230 User slacker logged in.
---> SYST
215 UNIX Type: L8
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> passive
Passive mode on.
ftp> ls
ftp: setsockopt (ignored): Permission denied
---> PASV
227 Entering Passive Mode (192,168,150,90,195,149).
---> LIST
150 Opening ASCII mode data connection for file list
drwx------ 3 slacker users 104 Jul 27 01:45 public_html
226 Transfer complete.
ftp> quit
---> QUIT
221 Goodbye.


Summary
The following chart should help admins remember how each FTP mode works:

Active FTP :
command : client >1024 -> server 21
data : client >1024 <- server 20

Passive FTP :
command : client >1024 -> server 21
data : client >1024 -> server >1024

A quick summary of the pros and cons of active vs. passive FTP is also in order:

Active FTP is beneficial to the FTP server admin, but detrimental to the client side admin. The FTP server attempts to make connections to random high ports on the client, which would almost certainly be blocked by a firewall on the client side. Passive FTP is beneficial to the client, but detrimental to the FTP server admin. The client will make both connections to the server, but one of them will be to a random high port, which would almost certainly be blocked by a firewall on the server side.

Luckily, there is somewhat of a compromise. Since admins running FTP servers will need to make their servers accessible to the greatest number of clients, they will almost certainly need to support passive FTP. The exposure of high level ports on the server can be minimized by specifying a limited port range for the FTP server to use. Thus, everything except for this range of ports can be firewalled on the server side. While this doesn't eliminate all risk to the server, it decreases it tremendously.

Wednesday, 16 November 2016

How to create a fillable pdf and interactive pdf forms?


With the advancement of technology, today business and job sectors are offering candidates to fill up application forms online. This leads to faster connectivity and candidates find it quite convenient to send applications online. And thanks to the development of fillable PDF forms which has increased
productivity in the job industry and relieved employees from the daily hassle of running door to door of every organization.
How to create a fillable pdf with websites and standalone softwares?

(1) Adobe Acrobat DC


Adobe Acrobat DC is the premium solution for creating editable PDF files and interactive pdf forms. This PDF form creator tool includes all the features that any professional organization would need for editing and customizing PDF documents. With Adobe Acrobat DC you can include editable signatures and avail all the Document Cloud services which include a complete tools package. You can edit any PDF file any time and also export it to a Microsoft Office format. Adobe Acrobat DC PDF maker tool can also be used in mobiles and tablet devices to make it much convenient for you to generate editable PDF’s. More advanced features of Adobe Acrobat DC include merging and combining files, scanning to PDF and protecting PDF files with secured password.


(2) Wondershare PDF element

Wondershare PDF element lets you create fill in PDF forms where you can edit and use digital signatures and use the converted document for your organization. Wondershare PDF element is an ultimate tool for home and office usage to create editable pdf. You can convert more than 300 file formats to PDF documents and use OCR (Optical Character Recognition) that lets you transform an image PDF document to an editable file. With OCR technology, you can search, create a editable PDF form and do lots more. Wondershare PDF element also supports multiple languages, including English, Korean, Romanian, Japanese, Russian, Portuguese and many more. You can even protect your PDF doc with password. This keeps you document secured and avoids theft of content.

To create a fillable pdf with Wondershare PDFelement, follow the steps below:

Launch Wondershare PDFelement.
Open the pdf form that you want to create as fillable.
Click on the Forms menu to reveal all the interactive field options.


Click on the first submenu ‘Edit Field’ to create a fillable form.
Add a form field by clicking on the ‘Form Field’ tool.
Move your mouse over the document to add the other fields. After creating the fields double click on it to open the properties dialog box.



(3) Nitro Pro 8

Nitro Pro 8 is a professional software which lets you create fillable pdf, prepare and sign documents for your business productivity. Nitro Pro 8 is considered as the ultimate replacement for the other PDF form editors because it is used by the biggest companies and appreciated for its services in return. Nitro Pro 8 lets you combine and merge documents, export it, edit PDF and OCR, use signature and secure it and allows cloud connectivity. The software offers you free trial and later you can upgrade it with the pro version.

To create fillable pdf file with Nitro Pro 8 simply follow the below process:
Open Nitro Pro 8 and open the pdf document that you want to edit.
Go to the Forms ribbon and select the form fields that you want to add to it.
For text forms, select ‘Text Field’ and drag and drop it to the document to create your own field.


You can adjust the form layout from the Properties tab under Form tools.



Click on the Select tool on the left and you can fill out the fields.



(4) CutePDF Professional

CutePDF Professional is an easy to use PDF form filler program that supports form editing, merging PDF files, adding headers and footers, and adding digital signatures, scanning, FTP, creating PDF booklets and much more. CutePDF Professional is premium software which is considered as one of the best softwares for generating editable PDF documents. Compared to the other PDF programs this tool can trim down the file size and generate hyperlinks along with allowing you to add watermarks to your files. Having the most advanced features; CutePDF Professional is an ultimate tool to create interactive PDF for web forms and let you modify them according to your requirements.

(5) PDFpen Pro

If anyone asks you how to make a PDF that you can fill out then recommend PDFpen Pro. PDFpen Pro is fillable forms software which can convert any webpage into PDF and lets you edit it. PDFpen Pro can build interactive PDF files and table of contents on the go or wherever you stay. This tool supports MS documents like Excel, Powerpoint and PDF exporting which makes it much convenient for users to use it. PDFpen Pro allows storing your PDF into the cloud like Dropbox and iCloud which supports accessing you files from any device and any location.

(6) Nuance Power PDF

Nuance Power PDF is a PDF form creator which provides you the most advanced benefits. With this tool you can generate and edit any PDF form whether it is converted from any webpage or manually created. Power PDF includes the most advanced features like FormTyper which can generate a fillable PDF within a PDF file where users can fill up data, use checkboxes and select a radio button. This improves user experience and decreases process steps. Nuance Power PDF offers you a free trial and later you can upgrade it for $150.


(7) How to make a pdf that you can fill out with PDFescape?

PDFescape is free PDF filler which lets you create PDF form and edit PDF documents online. PDFescape is free tool which can generate new PDF forms, view PDF files, annotate PDF documents, password protect your documents and fill out PDF files. Simple browse or drag/drop your PDF document in the website and upload it. Next you can start filling up the PDF forms online very easily.


(8) Simpo PDF Converter

To learn how to make PDF editable use the Simpo PDF Converter. Simpo PDF Converter lets you add any PDF file and convert them to any format including Word, Excel, Powerpoint, HTML, text and image. You can also edit the files after converting them and it can also transform encrypted PDF and supports batch conversion. Simpo PDF Converter is easy to use and user friendly software that anyone can use and edit PDF documents. It is a very handly application meant for personal, business and professional usage.

(9) PDF Buddy

PDF Buddy is a handy tool which can create PDF forms that can be filled out without having any software to be installed. Simply browse you PDF file and upload it and PDF Buddy will edit your documents. You won’t require any software to install on your computer because PDF Buddy works without any installation. The key features of PDF Buddy are it can be used anywhere and any place, saves a lot of time from manual editing and lets you edit any file easily and suitably.

Therefore, the best free PDF filler apps that we’ve mentioned are the best in the industry and most preferred by students and professionals.

10 Project Management Tips to Deliver Projects on Time

The task of a project manager is simple: to ensure that the requirements are met fully and that the project completes on time and within the budget. While this may sound simple, bringing the project to a successful end is no walk in the park.
Even the most perfectly planned projects can fail due to a number of unexpected factors. Studies have shown that about half of the large projects valued at more than $15 million fail to meet the targets. On average, around 45 percent of projects run over budget while 7 percent exceed the target time, and 56 percent deliver less value than predicted.

The findings are consistent across different industries. Successful project managers that are able to see their projects to completion are those that have high problem-solving skills. They know what steps to take to see the project come to a successful end. Here are 10 critical steps that you can take to deliver the project on time and within the budget.
10 Project Management tips
1. Make a Cost Analysis and ROI of the Project

Before taking on any project, it’s important to perform a cost analysis. Make sure that you work out the cost, profit margins, and return on investment (ROI) of the project. This is important to ensure that you don’t take on projects that are not aligned with the strategic goals of the company. There is no point taking on projects that are not beneficial to the bottom line of the company.

Create fillable pdf and interactive pdf forms using different software

2. Prepare a Contingency Plan

You must be prepared for all types of eventualities that relate to the project by making a contingency plan. It’s important to evaluate all the risks relating to the project and the obstacles that can prevent successful completion of a project.

Identify all the resources that will be required for the budget, and then make a plan on how you will manage supply disruptions due to an unexpected event. Also, find out what steps to take in case of machine breakdowns and other similar emergencies. A contingency plan will ensure that the project continues despite the obstacles that prevent it from completing on time.

3. Put the Right People in Place

A skilled and properly trained team is the foundation for any successful project. Putting the right people in place having the right experience will greatly increase the chances of successful completion of the project. Assigning the right people at the start of the project will make handling a project a lot easier as compared to firing them halfway through the project.

Remember that the motivation, experience, and enthusiasm of the team will determine the delivery of the project. You should have the skills to properly manage the team and guide them in a way that helps in achieving project objectives.

4. Write a Detailed Scope of the Project

The scope of the project should be clearly established at the start. A detailed project scope that has been approved by all the stakeholders of the project is an absolute necessity. Make sure that the project scope includes important milestones, a timeline, and the expenses required to complete the project.

Agreeing on a project scope before the commencement of a project will ensure that everyone is on the same page about project deliverables. This will provide the project manager and the team to know exactly what needs to be accomplished. Moreover, it will allow the manager to point out when the project is diverging from the agreed outline of the project.

5. Establish Criteria for Success

Without establishing criteria for measuring success, there is no way of knowing how to successfully complete the project. You need to set success criteria for the project that are not only measurable and reportable. The criteria chosen for the project will not only define project success, but also act as a benchmark for the project management team to known whether they are staying on track on straying from the project deliverables.


6. Open Flow of Communication


An open flow of communication will ensure that problems are detected early on before they cause major damage. It’s suggested that you keep systems in place that can help in identification of risks before they escalate. An honest flow of information will ensure that recurring problems are identified and proper action is taken to prevent them to negatively affect project outcomes.

7. Establish Strict Control

One of the main reasons that projects do not meet the original targets is because of ‘scope creep’, which happens when the client makes additional requests during the execution phase of the project. In order to avoid this prospect, it is vital to set strict change control. An executive level approval should be required for every change request made by the client. Otherwise the never ending lists of ‘nice-to-haves’ will result in failure of the project.

8. Remain Disciplined and Methodical


The project management team should remain disciplined and methodical in completing the project tasks. Tardy deliverables and project delays equate to over-budget and late project. It’s suggested that the project end-goal must be divided into mini-goals that can help the team in timely completion of the project while meeting all the project deliverable goals.

9. Review and Improve

You must conduct a careful review of the project both during and after completion. This will enable you to note the good points, learn from the mistakes, and plan the next project even better. Continuous analysis and review of the project will ensure that recurring problems do not occur, and also allow the project management team to improve after every project.
10. Create a ‘Post-Mortem’ Report

After the project has ended, a ‘post-mortem’ report should be prepared for internal purposes. The report should highlight the high and low points during the execution phase of the project. The report will serve as a benchmark for the project manager in carrying out future projects.


In conclusion, you must remember that there are more than one ways to complete a project successfully. You must be willing to discover that path that leads to success, and then incorporate it into your project management DNA. The ten project management tips shared in this article can help you get started and ensure that a project moves along smoothly and completes on-time and within the budget.

Wednesday, 9 November 2016

10 RUDE TEXTING PRACTICES YOUR MAN WANTS YOU TO POLITELY STOP


It’s the modern technology age, and everybody uses text messaging. When texting first came out, it was 10 cents per text. Most people were not using texting nearly as much as they are now. Most cell
phone plans currently come with unlimited texting. Although it’s a good thing money-wise, this has caused texters to get out of control with their text messaging etiquette.

In the realm of “out-of-control text senders,” women are guilty of rude and immature text messaging behavior more often than men. This is why men are starting to get irritated with their woman’s texting etiquette.

Many women struggle with talking constantly and nagging their man trough text messages, as well as in real life. These 10 texting practices drive men crazy. If you are guilty of these, consider changing your ways before he takes off runningand changes his number, too.
1. THE WOODPECKER: TEXTING CONSTANTLY


Just because you both have phones, it doesn’t mean you should be texting him every second he is away from you. This goes for anyone, not just your man. This behavior makes you look clingy, and most dudes don’t like clingy.

Not being together 24/7 is healthy for a relationship, especially a new or growing relationship. Texting him constantly is only going to make him feel suffocated. Give him a chance to miss you once in a while.

This behavior also makes you seem like you don’t trust him. If he is out and you are nervous he is going to cheat on you, don’t text him constantly in an attempt to keep him from cheating. Cheaters will always find a way. Sending text after text isn’t going to make your man faithful if he meets the right girl on the side.

Worrying about him cheating could be linked to his behavior, but it is most likely linked to your insecurities, and most men do not find insecurity attractive. If you feel the need to text him because you think he’s going to cheat, you may want to re-evaluate your entire relationship.

Your man wants to know how much you trust him. Give him some space, trust and respect. You will both be happier in the relationship if you take time here and there to do things independently of each other. Remember, cheaters always get caught, but not through text messages.
2. THE VICIOUS CYCLE: FIGHTING OVER TEXT
Fighting over text messaging is like fighting with a brick wall, literally. This is the unhealthiest fight you can have because it enables you both to focus on your own feelings, and not your partners. Text fights amplify resentment and frustration because you just get more and more upset. You have all that time waiting between texts to concentrate on your own feelings.

Example:

Him: “What did I do to make you so mad? All I said was that I was stopping at Burger King on the way home from work.”

Her: “What is wrong with you? Why don’t you ever listen to me? I told you I am on a diet. If you come home with Burger King, I’m going to lose my mind.”
Him: “Yes, but I’m hungry and you are being insensitive witch.”

Notice how nothing was accomplished in this situation. The guy is still getting Burger King and the woman is going to sit at home getting angrier by the second knowing that her man is going to be eating a delicious burger because she said he couldn’t bring it in the house. Neither of them was even trying to compromise in this situation.

This behavior is also harmful to your relationship because if you do it often enough, you are making it a habit to completely disregard his feelings. You may not mean to, but since you can’t physically see how upset he is, you are more focused on yourself. All you are doing is making yourself and him angrier.

If you need to have a screaming match, do it in person. With certain personality types, constructive fighting does help the relationship, but only if you are both trying to compromise and you are making progress. Everyone gets upset sometimes and everyone yells sometimes. Keeping the caps lock on for 25 messages straight does not solve anything and it does not make you feel better, so knock that off.

If you find that either he is trying to fight over text or you want to start a text fight because you are angry, just put down the phone and walk away. Even if he gets angrier that you aren’t texting back, just give yourself time to cool down. Compromise works better when you have had time to realize that you are being unreasonable.
3. BEING JULIET TO HIS ROMEO: TALKING MUSHY
Photo by Michele Ursino / CC BY-SA

If you are texting your man all these emotional, lovey-dovey things every time he is away from you. He is going to get annoyed, as anyone would. It’s one thing to text emotional or mushy things if you can’t talk on the phone or have a long distance relationship, but it should not be all the time. Generally, men do not enjoy talking about feelings anyway, so talking about your feelings all the time is going to get old quickly for him.

The other aspect of this that you guy wants you to quit doing is the “I love you more” junk. If you say “I love you” and he says “I love you more,” and then you say it back, this just bounces back and forth. Before you know it, he is going to start pulling out his hair. Odds are, he is only saying it back now because he doesn’t want to hurt your feelings or make you mad.

Saying “I love you” or telling him how much he means to you should be something said face to face anyway because it means more. Reading it in a text is not going to feel the same for him as it does for you because, essentially, it is coming from the phone, not you.

Do your man a big favor and just stop it with the lovey junk. He knows you love him, don’t text him how much you love him if he just went to the grocery store for 10 minutes to buy you some ice cream. Spare him a headache; tell him when he gets home.
4. THE ZOMBIE: NOT BEING MUSHY ENOUGH
This may sound counterproductive, but it isn’t, because it is the opposite of being too mushy over texts. Being way too mushy is one thing, but treating him like he’s an acquaintance when you’re texting isn’t a good idea, either. If he is trying to talk to you over text and you are just replying with one-word answers, you are shooting down his attempts to connect with you, even though you can’t be together.
:
Photo by kate hiscock / CC BY
Example
Him: “Hey baby. I have an hour left of work and nothing to do. I miss you, what are you up to today?”
Her: “Cleaning.”
Him: “Oh, cool. So what are we doing tonight? Do you want to catch a movie or go for an evening hike? It’s Friday, let’s do something fun.”
Her: “Movie I guess.”

In this case, the man is obviously trying to make conversation with the woman and she is totally blowing him off. He is being sweet by trying to be nice to her, and she is ignoring it. This behavior could cause long-term problems in the relationship, because if he keeps trying and she keeps blowing him off, he will eventually stop trying to be sweet.

One word replies are not a good habit to get into, no matter who you are texting. It makes the other person feel like they are not even worth your time. If someone is taking the time to text you or ask you a question, it is polite to at least answer in a full sentence. When your man texts you, it is most likely for a genuine purpose and he is expecting a genuine answer.

Keep text conversations light and sweet. Add smilies and hearts here and there just to subtly remind him that he makes you happy, but don’t over-do it. You don’t need to tell him every five minutes that you love him, but you should model your texts to be almost exactly like what you would say if you were face-to-face.

If you are only texting back short answers because you are busy and his texts are not of an urgent nature, just tell him that you don’t have time to chat. Simply tell him, in a sweet tone if possible, that you will text or call him when you have a free minute.

Also, if you are one of those people who profess your love to your best friends over text, but not to him, he will notice that. Obviously, your love for your friends is different that your love for him, but he wants to see that you are the most important thing to him.

Your friends are an important part of your life, too, but it is insensitive to text them sweet and loving things that you wouldn’t even say to your man face-to-face. Consider this if he brings up your text relationship with your friends.
5. THE MIND BENDER: TRYING TO BE SASSY OVER TEXT
Photo by Christopher Brown / CC BY

This is an ineffective move, in real life and over text. If you are upset or irritated with him and you are trying to hint at it over text, you are not going to get anywhere. It is difficult to determine your tone of voice, and therefore, your intentions, over text. You may be saying something that sounds sweet and sassy to you, but to him it may just sound mean or undermining. Worse yet, he may not even get what you are hinting at.

Being coy or snotty over text is immature and annoying to most people. Your man will not want to take the time to decode your text messages, whether he’s busy or not. Don’t talk in code if you are upset, because you are setting yourself up for disappointment and anger. You cannot expect him to read your mind or do what you want him to do.

Example:

Him: “Hey, I’m going out to the bar. You cool with that?”
Her: “Yes, sure – do whatever you want.”
Him: “Sweet.”

She could be saying it’s okay, but on the other hand, she could be saying, “Do it, because I know you’ll do it whether I want you to or not,” or she could be saying any number of things. This message is vague and confusing, and is open to misunderstanding.

Perhaps, she is trying to hint that she does not want him to go. This is probably because she doesn’t want him getting hit on by other women at the bar, but she doesn’t want to tell him not to go, because she’s afraid it would start a fight.

He may get the hint, but he may also just glance at it and think that she is fine with it, like he did in this case. He may understand, but then become irritated by the obvious attempt at manipulation and stay at the bar even longer. When he gets home from the bar, he is probably going to have to deal with her grilling him about the women he met while he was there.

Trying to be sarcastic, sassy or snotty is probably hurting you more than it is hurting him. If he didn’t get your hint, he is not going to understand why you are mad at him. This is how many serious relationship fights begin. Take a minute to think before you do this, use your words and be direct with your texts.

Better yet, tell him you’ll see him soon, and save this conversation for later, preferably another day when he is sober. He took the time to ask you if it was okay, which is something many men do not do if they care about their partner.
6. DEBBIE DOWNER: TALKING ABOUT SERIOUS THINGS
Photo by English106 / CC BY

Usually, this kind of situation occurs when one has upset the other, and they are trying to work it out over text. You may be thinking that it’s fine because you aren’t fighting over text, but it’s not. When you are texting about something serious like that, you are missing out on an important bonding moment for the two of you by not being face to face.

Serious conversations create feelings of some kind. Whether these feelings be happiness, stress, anger, confusion, or love; sharing these feelings together is an important piece of your growing relationship. If you have the most serious conversations of your relationship over text message, you are not setting yourself up for long-term success.

It’s important to be able to be together when serious conversations need to happen. It enables you to grow as a couple and understand each other’s body language better. Do yourself a favor and always save those deep talks for the next time you see each other, even if you have to take time out of your busy schedule to make it happen.
7. THERE, BUT NOT THERE: TEXTING WHILE YOU ARE OUT TOGETHER

If you are spending time out and about together, you should not be on your phone the whole time. When you are texting someone else while with him, it makes him feel like you are completely bored and don’t enjoy being with him
.
Photo by LASZLO ILYES / CC BY

This is especially true if you are on a date, that’s just totally rude and hurtful. When you man takes the time to take you out on a date, he expects you to be concentrated on being with him. Texting through your date is completely insensitive. However, even if you are just out running errands, shopping, or getting the oil changed; use that time to just enjoy spending time together.

He will notice if you are constantly texting someone, make an effort to use as much of that time talking to him. This may be a great time to ask him questions about himself, the stuff you have always wanted to know, or sing along to the radio together. Just put that phone in the bottom of your bag and give him all of your attention. He will appreciate it and respect you for it.
8. THE PEEPER: TEXTING HIM WHILE HE IS IN THE BATHROOM
Bathroom time is a private time, no matter what the person is doing in there. It is extremely rude to be texting him while he is in the bathroom. Many women are guilty of this because they do not believe their man is doing what he says he is doing – still, it’s not acceptable to be texting him during his personal time.

Men hiding in the bathroom when things are tense in the house is common with couples who have little kids. This is usually why the woman may want to text him and call him out, but it is still encroaching on his private time. Just leave him to it and talk to him about your feelings when he is out of the bathroom.

No matter what it is that you need to say, save it for when he is out of the bathroom. Not only is it annoying to be sending texts while he is busy, but it makes you look clingy and insecure. Nothing is so important that it requires a text from 10 feet away.
9. THE SNOOPER: CHECKING HIS PHONE WHEN HE GETS A TEXT MESSAGE

It may be tempting to pick up his phone when you hear the text message notification ring, but it is not okay to read his texts without his permission. This is an invasion of privacy and it makes him think you don’t trust him. If he asks you to read him the message because he is busy, go ahead, but if he’s not around and you just want to know who is texting him, leave it alone.

If you feel like you desperately need to know who is texting him, just ask him once he reads it. In most cases, he will tell you without hesitation and probably even exactly what the text said. There is no need to be nosy. This just breeds distrust. Do you share each and every text message with him? Of course not 
.
Photo by Steven Pisano / CC BY

While we are on the subject of checking his phone when it goes off, it is also not a good idea to snoop around his phone in general. Stealing his phone when he is not around and reading everything in it is not healthy. Even if he is lying to you and you are almost positive about it, don’t hurt yourself further by reading all of his personal stuff.

You may find more than you bargained for when you go snooping through someone’s phone. It’s always better to have an honest and open conversation about your suspicions. Snooping may start a vicious cycle of distrust between the two of you.
10. THE WOODPECKER: SENDING MULTIPLE TEXTS WHEN HE DOESN’T ANSWER THE FIRST ONE
If you send a text and he doesn’t answer, do not be one of those people that keeps sending texts until the person answers. That behavior makes you look like a psychopath. You do not need to get all bent out of shape just because he doesn’t text you immediately. This type of behavior also breeds distrust and co-dependency in you. When you act this way, you are only hurting yourself and even permanently damaging your relationship.

When you let yourself get angry over him not texting you back, you are opening yourself up to insecurity and frustration. You are also overreacting. Men hate it when their women overreact. It is easy to overthink things, but it is not healthy for your emotional stability.

If you feel you need an answer to your text immediately and he doesn’t answer, just call him and leave a message if necessary. Whatever he is doing that keeps him away from his phone isn’t going to make him available any quicker. Do not be that person that sends 50 texts in two hours just because you feel you need an answer now.

Text messaging has put on a strain on the normality of growing relationships. Exhibiting behaviors like these in your text etiquette is not going to help your relationship in any way. In fact, it can only hurt it – perhaps even ruining it forever. Your man is not going to put up with your crazy text addiction for long, so do yourself a favor and change your habits early on.

Remind yourself that the world does not revolve around technology. Your phone isn’t going to love you and keep you warm at night. It is not going to grow old with you. Your man isn’t going to stick around for long if he thinks that you love your phone more than you love him.

If you want to build a happy and healthy relationship with your man, you should spend as little time on your phone as possible. Give him the attention that he wants and deserves, and you’ll be far happier. Soon you’ll realize your phone is not nearly as important as he is.

A BABY BORN DEFORMED DUE TO USE OF CONTRACEPTIVES BY THE MOTHER.SEE PHOTOS


A baby has been born deformed with no left ear, hydrocephalus head, cleft lip and cleft palate because his mother was using contraceptives while pregnant. Sylvia Ijeoma shared the photos on
Facebook saying: "To the youths of our time, do not get a lady or gal pregnant.An innocent baby was delivered today in our hospital,hydrocephalus head,no ear(left)cleft lip and cleft palate baby due to the use of contraceptive pills.Be warned don't fall a victim." She wrote in a Facebook post.
Full photo below...




Monday, 7 November 2016

RELATIONSHIP ADVICE FOR MEN WHO WANT TO FIND THE LOVE OF THEIR LIVES


Are you single and hoping to find the love of your life? Some pieces of relationship advice are a mess. Sometimes they tell you to be active to find the one and other times, they tell you fate will lead
you to it. What should you do then? Which way should you choose? Do you look for it or do you wait for it?

Relationships are a work in progress, from finding one to keeping it. This article is all about relationship advice for men who want to find the love of their lives.
1. STOP LOOKING AND START LOOKING INSIDE OF YOU
Both men and women often make the mistake of jumping into a relationship thinking that they need someone to complete them or make them happy. This is one of the reasons why many people stay in abusive, unsatisfying or unhealthy relationships because their happiness relies on another person.

Stop looking and focus on making yourself whole first before jumping into the dating pool again. Start by accepting and loving yourself for who you are, heal your past, discover what you want in life and go after it. Your journey to finding the love of your life starts with you.
2. KNOW YOUR WORTH

Too many people settle for less because they deep inside think they deserve nothing more. Too many people stay in abusive and miserable relationships because they think they will never find “love” again. Too many people let their partners take them for granted or treat them like crap because they, too, do not value themselves.

Furthermore, people who do not know their worth are often insecure and insecurity is not a trait other people find attractive.

A bit of finding the love of your life: accept yourself for who you are, know your limits and strive to be better. When you know your worth, you don’t have to go on pleasing others, and you won’t let others treat you like dirt. Knowing your self-worth does not mean you should be arrogant or to think highly of yourself. It means loving and respecting yourself so others would love and respect you.

Self-love is one of the main foundations of a solid relationship.

Another piece of relationship advice for men after they break up with someone is to deal with insecurities first to avoid making yourself vulnerable again.
3. DO NOT LET OTHERS TELL YOU HOW YOU SHOULD LIVE YOUR LIFE

You do not need someone to find fulfillment in life; you have to do it by yourself, and you can find it if you do what makes you happy.

Doing what makes you happy means being honest with what you want in life. It means not letting anybody else dictate what you should do or care too much about what they will think about you. There may be people whom you will disappoint but doing what makes you happy will bring you to the right path where you will find contentment and fulfillment with your job, the people around you and your relationships.
4. DON’T PRETEND JUST TO PLEASE SOMEONE
Learning to accept yourself as you are and living your life the way you want it instantly makes you more attractive because it makes you more positive, genuine, passionate and real. It also increases your chance of finding someone who is your perfect match.

Whereas if you change the way you are or pretend to be the ideal guy you think would attract the ladies you are making yourself unhappy. It won’t be long until you show your true self, which is not what attracted her to you. Eventually, it will lead to an unhappy and unsatisfying relationship for the both of you.

There’s a good reason why most articles that provide relationship tips for men tell them not to pretend to be someone they are not just to please a potential partner. Wear the clothes you are comfortable with, live within your means and do the things you enjoy. Be yourself but strive to be a better version of yourself.
5. DEVELOP THE TRAITS YOU’RE LOOKING FOR IN A PARTNER

You may be unconsciously attracted to someone that represents a part of you that you suppressed long ago. This is a type of bonding pattern, and the attraction can occur unexplainably.

As young children, people have a part of themselves they disown to survive or to thrive in their family or their community. For example, a child with irresponsible parents may have to take responsibility at a young age. Thus, this responsible person will end up attracted to a person who needs caring. This is usually one of the relationship problems for men where they constantly feel the need to save the damsel in distress.

On another scenario, a child may need to toughen up at an early age with no loving parents to nurture him; thus, he is likely to be attracted to a nurturing person.

Bonding patterns are normal and inevitable; however, it can affect relationships negatively especially if problems arise. The partner of the responsible person may become too dependent and forget that she has her responsibilities too, and the tough person may depend on his partner to do all the nurturing.

Before jumping into a relationship look inside yourself and restore the part or parts you disowned. Look back into your previous relationships and look for a common attraction factor that indicates a bonding pattern. If you notice a certain trait, develop this trait in yourself.
6. ENGAGE WITH LIFE
Have you ever experienced looking for something and still can’t find it even after looking in every corner of your home? And, it will only resurface once you stopped looking.
Photo by Pedro Ribeiro Simões / CC BY

Do not focus too much on finding the right person to the point that you direct almost all your activities to this one goal alone. Stop hopping from blind dates to blind dates. Stop scrolling down on dating sites profiles. Just stop looking, engage with life and do what you enjoy. For all you know she might be at your friend’s party, at the art exhibit or your next vacation destination.

Go on with your life and connect with people you meet along the way without thinking she could be the one. The more you build genuine relationships and bonds, the more you are likely to find a genuine partner for life.
7. LET THINGS UNFOLD NATURALLY
When you finally meet someone whom you think is a potential partner in life, allow the connection to develop genuinely.

Let your relationship unfold on its own based on what is real. There is no need to pretend to be someone else, no need to create a more desirable image, to play mind games or try the seduction or hypnosis techniques you read online just to make her stay. Let your feelings unfold toward each other based on who you truly are.

Every person is unique and in turn, the relationships they build are unique. You cannot plan which way your relationship should go. There is not one thing you can do or words you can say that yield the same result. You have to go along with the process, make decisions as you go and just be real with yourself and her.
8. INSECURITY CAN KILL A RELATIONSHIP

Insecurity is one of the root causes of many relationship problems. Insecurity will eventually break your relationship if you don’t deal with it. Constantly checking on your partner’s phone, constantly checking on her whereabouts and who she’s with and being needy are signs of being insecure. Mind you, the people around insecure people tend to abandon them because they are annoying and draining, as they impose their insecurities on other people.

Get yourself together before you ruin what could be a great start. Overcome your insecurity by understanding where it’s coming from. You can visit this to help you overcome your insecurity effectively. You can also join a relationship advice for men forum in dealing with your insecurities.
9. COMMUNICATE OPENLY
Open communication with your partner allows you to make fair decisions, resolve issues, to share interests and to share how you feel about each other or certain situations. Whereas if you do not communicate with each other, you could be harboring resentment and ill feelings towards each other due to unresolved issues. Dissatisfaction can also arise when there is no communication in the relationship because you cannot keep guessing about each other’s feelings every time.

Be a good listener and avoid reacting unreasonably so you’ll encourage your partner to open up to you every time. If you have issues or concerns, send your message clearly. Resolve your problems as early as possible, but learn when to step back of your partner is not ready. Avoid throwing blame at each other; instead, come up with a solution. Open communication is a unified effort so ask your partner to do the same.
10. DON’T TAKE HER FOR GRANTED

A lot of men, and women as well, are guilty of taking their partners for granted after being together for years. Many people don’t exert an effort to please their partners once in a while because they get too comfortable that their partners will be around, no matter what. She may stay, but is she happy and for how long?

Your partner should be tops on your priority list. Take time to spend quality time with her. Do things for her without her asking. Appreciate the things she does for you and tell her in words. Make her feel special with little surprises.
11. DECISION-MAKING SHOULD INVOLVE HER
A lot of men are guilty of making decisions by themselves, especially if they give a bigger financial contribution to the relationship. No matter how small or big the matter is, ask your partner’s opinion about it. Letting her pitch into the decision-making is a way of showing that you respect her and that you care about what she has to say.
12. DON’T KEEP REOFFENDING
People will commit mistakes because nobody is perfect, but don’t use this nobody-is-perfect card to keep committing the same mistakes again and again. As Rob Hill said, you can’t make the same mistakes twice, the second time you make it, it’s no longer a mistake it’s a choice.

When you say sorry, mean it and do your best not to make the same mistakes again. She may forgive, but she may never forget, and once she’s done, there is nothing you can do to change her mind.
13. AVOID PUTTING YOURSELF INTO SITUATIONS THAT COULD LEAD TO CHEATING

Cheating does not happen in the spur of a moment. You cheated because you allowed yourself to be in that situation.
For example, a few flirty texts with your hot officemate became flirty conversations, and then you’ll start making up excuses to work late. The excitement of this secret relationship is slowly taking over your steady relationship until you end up cheating on your partner.

So, what’s your excuse? That you’re only human? That it’s her fault because she’s not giving you enough attention? Relationship advice for guys like this: Grow up. It happened because you let it happen. If you have issues, talk to your partner. Don’t put yourself into situations that you know could end badly.
14. LET HER KNOW HOW IMPORTANT SHE IS TO YOU
You won’t realize the value of a person until you lose her. Don’t wait for this time to happen before you do something. Envision yourself and your life without her. How would you feel? How would you be? Let her know how important she is to you not just with words. Back it up with actions.
Photo by Emily Tan / CC BY

15. STOP CHECKING OUT OTHER WOMEN
In case you not aware of this, turning your head to check on another woman when you are with her is just plain disrespectful; enough with those excuses that it’s men’s nature to look, or she’s insecure if she can’t handle it. A real man knows how to make her lady feel special and this is definitely not one of them.

You can ogle all you want, but when you are with her, keep your eyes on her. Make her feel that she’s the most beautiful or sexiest woman in the world. She knows she is not, but she wants to be the most beautiful in your eyes.
16. BE HONEST, BUT IN A GENTLE WAY
When you have to point out something, be honest and gentle at the same time. If you find the dress she is wearing unflattering, don’t say “You look awful in that dress.” Instead say “Honey, I think the red dress looks sexier on you.”

Women are sensitive when it comes to criticism, but you do not have to walk on eggshells every time you want to point something out or pretend that nothing’s amiss. How you say it can make a huge difference.
17. DON’T WALK AWAY FROM CONFRONTATIONS
Don’t walk out or pretend not to hear anything if your partner is confronting you about something. She’s talking to you because she’s hurt, and she wants answers and explanations. Respond calmly and talk clearly. Don’t leave out details that could raise more doubts.

Remember, when your partner is asking you about something, she already knows the answer, but she wants to hear it straight from you. Be honest.

How can you stop walking out in the middle of a verbal argument? Prevent it from happening in the first place. Make an agreement with your partner to avoid confrontations at the height of your emotions.
18. WORK ON YOUR SEXUAL SATISFACTION

Sexual satisfaction is an important factor in a long-lasting relationship. You don’t have to be full of surprises every time you hit the sack or be highly flexible to perform out-of-this-world bedroom stunts. Know what ticks your partner in bed and do it. It’s that simple.

Pleasure and satisfaction are not just man’s needs. Communication is crucial key if you want a healthy and satisfying sex life. Talk about what you like and how you like it.
19. LOVE IS MORE THAN AN EMOTION, IT’S A CHOICE
To be in love is the best thing in the world; that wonderful feeling of seeing the person you love, the hugs, the passionate kisses and the excitement at the thought of spending your life together. These fleeting emotional will eventually fade, and it is now in your hands if you will choose to stay in love or find that fleeting feeling again.

Choosing to stay in love requires commitment and hard work because it means accepting your partner as she is, despite her flaws and shortcomings.

The best relationship advice for men who want to find the love of their lives is perhaps that they should learn to love themselves first. According to the famous author, Dodinsky, “You have to love yourself because no amount of love from others is sufficient to fill the yearning that your soul requires from you.”

Looking for more relationship help for men? Join a relationship advice forum where you get to interact with real people with their real problems.

Are you in search for the love of your life? This relationship advice for men will help you find the love of your life and make your relationship last.