I found this to be a very interesting question.
I have so many thoughts. First, what is a liar? We all have lied, does that makes us liars or are we people who have happened to lie before?
I am assuming a liar is someone who lies often, lying is part of their day-to-day operating, and they are lying to you.
It has been my experience that a liar can detect another liar. It is hard to identify deceit when you are truthful- or to even think about looking for it.
Now if your question is how to catch a liar with your morales intact, I would say that there is no simple answer to this question. Continuing to be truthful and sticking to facts will normally flush out a liar. Liars have to spin a web of lies to continue to function. Eventually, their story will fall apart. Staying alert and noticing when a small detail does not fit is the best way to catch anyone in a lie. Once caught, a liar will cover one lie with another but this can go on for only so long.