这样的逻辑推理题怎么做?

只有一个人的供词是假的,所以需要找出四个人相互矛盾的内容,即B和D的话中一定有一个是假的。如果B是谎言,那么其他三个字都是真的,而如果D是假的,那么C也是假的。所以丁说的是实话,所以乙犯了罪。选b。