修复field encrypt在ecrypt时未提前将float和double转为int和long的bug
parent
18800f78c4
commit
8cc1110e07
|
@ -122,6 +122,10 @@ namespace Obfuz.ObfusPasses.FieldEncrypt
|
||||||
{
|
{
|
||||||
// value has been put on stack
|
// value has been put on stack
|
||||||
// xor
|
// xor
|
||||||
|
if (fei.fieldType == ElementType.R4)
|
||||||
|
{
|
||||||
|
outputInstructions.Add(Instruction.Create(OpCodes.Call, importer.CastFloatAsInt));
|
||||||
|
}
|
||||||
outputInstructions.Add(Instruction.CreateLdcI4((int)fei.xorValueForZero));
|
outputInstructions.Add(Instruction.CreateLdcI4((int)fei.xorValueForZero));
|
||||||
outputInstructions.Add(Instruction.Create(OpCodes.Xor));
|
outputInstructions.Add(Instruction.Create(OpCodes.Xor));
|
||||||
|
|
||||||
|
@ -134,6 +138,10 @@ namespace Obfuz.ObfusPasses.FieldEncrypt
|
||||||
{
|
{
|
||||||
// value has been put on stack
|
// value has been put on stack
|
||||||
// xor
|
// xor
|
||||||
|
if (fei.fieldType == ElementType.R8)
|
||||||
|
{
|
||||||
|
outputInstructions.Add(Instruction.Create(OpCodes.Call, importer.CastDoubleAsLong));
|
||||||
|
}
|
||||||
outputInstructions.Add(Instruction.Create(OpCodes.Ldc_I8, fei.xorValueForZero));
|
outputInstructions.Add(Instruction.Create(OpCodes.Ldc_I8, fei.xorValueForZero));
|
||||||
outputInstructions.Add(Instruction.Create(OpCodes.Xor));
|
outputInstructions.Add(Instruction.Create(OpCodes.Xor));
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue