请问对程序加密处理时,如何替换if then 语句

请教对程序加密处理时,怎么替换if then 语句?
最近学习加密,在网上查看了不少资料,很多破解的方法都是针对if then 语句之类的,所以想请教一下大家,怎么在程序里替换if then语句,很久没来论坛,只剩最后的30分了.谢谢

比如: var a:integer    if a=333 then {允许执行命令} else {返回错误信息}

上面这种结构,可以用什么别的方法来替代嘛?目的就是为了加大破解的难度,当然else后面可以不返回错误信息,这个不是讨论范围,我只是想知道怎么用其他方法来替换if then 语句.希望了解的朋友能指点一下,谢谢了.

------解决方案--------------------

function IsOK(a:Integer):boolean;
Asm
  cmp a,333
  je Ok
  jne notOK
  db 34,23,56,67,3,57,54,2,28,67,69,0,4  ;  花指令,用来迷惑反编译器,其实你打些什么都行。。
Ok:mov @Result,1
   jmp @Exit
notOK: mov @Result,0
@Exit:
end;

//调用:
if IsOk(a) then
  //做什么
else
  //不做什么

------解决方案--------------------
高级加密需要动态生成机器码,跟踪程序时看到的反汇编是假象,执行到那里时才用真实机器码去替换。这样可以妨碍断点跟踪,只能单步跟踪,很容易跟进陷阱(例如一个大循环)。当然,这样的程序人工写也很麻烦,需要用软件工具。