title: In IA-32 assembly language, can IDTR, GDTR or LDTR be modified or 'loaded' without the LIDT, LGDT and LLDT instructions?
body: <p>In IA-32 assembly language, can IDTR, GDTR or LDTR be modified/'loaded' without the LIDT, LGDT and LLDT instructions?</p>
  
  <p>Also, is there a complete list of instructions that can be used to modify other registers? I need to know which instructions could be used to modify CR3, and which instructions could be used to modify ECX.</p>
  
  <p>I am new to IA-32 assembly. I am aware of MOV, ADD, SUB, etc., however it would need to be a complete list and I believe there are probably a whole lot of instructions which could potentially be used to modify these registers.</p>
  
  <p>Thanks! :)</p>
  
  <p>Edit: The reason I want to know is because I am considering whether monitoring an instruction trace (using hardware debugging) of executed instructions is a feasible method of detecting - in an external 'integrity monitoring' machine - any malicious rootkits which alter the addresses in these registers to perform what is known as an Address Translation Redirection Attack (ATRA). Therefore, I am trying to determine whether it is possible to determine a complete list of potential malicious instruction sequences modifying each of these registers.</p>