这个问题关键不在于做在DLL还是EXE内调用,因为你做在DLL内也是以函数形式调用。任你换造型都是可以分析出来的。
其实可以简单化讨论:
假设这个函数MyFun:
function MyFun(A,B):E;
正常情况调用都是先计算A和B然后 Ret :=MyFun(A,B);
那么如何让调用不至于被简单模拟关键就在于A,B的计算,以我的经验看不这里的参数最好不要太简单比如integer,string类型的,应该是设计成一个结构传递参数:
Type
PParam =^TParam;
TParam= record
X1:[0..n] array of byte; //这里做迷惑作用,大小根据需要定,建议使用长些,赋值可以采用随机数或者其它方式填充
A:X //使用的参数1
X2:[0..n] array of byte; //这里做迷惑作用,大小根据需要定,建议使用长些,赋值可以采用随机数或者其它方式填充
B:X //使用的参数2
CRC:Dword;//校验作用
end;