Skip to content

Unhandled exception. System.OverflowException: Value was either too large or too small for a UInt64. #1

@nettrino

Description

@nettrino

Hello,

Analyzing a sample contract and got the following unhandled exception:

Unhandled exception. System.OverflowException: Value was either too large or too small for a UInt64.
   at System.Numerics.BigInteger.op_Explicit(BigInteger value)
   at B2R2.MiddleEnd.BinEssence.BinEssenceModule.resolveVarEdgeWithState(UInt64 addr, Vertex`1 src, Int32 tmpNo, Boolean isCjmp, State state, BinEssence ess, FSharpList`1 edges) in /mnt/c/Workspace/Smartian/EVMAnalysis/B2R2/src/MiddleEnd/BinEssence/BinEssence.fs:line 504
   at B2R2.MiddleEnd.BinEssence.BinEssenceModule.resolveVarEdge(UInt64 addr, ProgramPoint ppoint, Vertex`1 src, Int32 tmpVarNo, Boolean isCjmp, BinEssence ess, FSharpList`1 edges) in /mnt/c/Workspace/Smartian/EVMAnalysis/B2R2/src/MiddleEnd/BinEssence/BinEssence.fs:line 521
   at B2R2.MiddleEnd.BinEssence.BinEssenceModule.getEdges(BinEssence ess, FSharpList`1 edges, Vertex`1 src) in /mnt/c/Workspace/Smartian/EVMAnalysis/B2R2/src/MiddleEnd/BinEssence/BinEssence.fs:line 589
   at B2R2.MiddleEnd.BinEssence.BinEssenceModule.addEdgeLoop(BinEssence ess, FSharpList`1 elms, FSharpList`1 _arg1) in /mnt/c/Workspace/Smartian/EVMAnalysis/B2R2/src/MiddleEnd/BinEssence/BinEssence.fs:line 732
   at B2R2.MiddleEnd.BinEssence.BinEssenceModule.connectEdges[a](BinEssence ess, FSharpList`1 elms, FSharpList`1 edges) in /mnt/c/Workspace/Smartian/EVMAnalysis/B2R2/src/MiddleEnd/BinEssence/BinEssence.fs:line 741
   at B2R2.MiddleEnd.BinEssence.BinEssenceModule.buildBlock$cont@764(BinEssence ess, FSharpList`1 elms, FSharpOption`1 edgeInfo, ProgramPoint leader, BBLStore bbls, FSharpResult`2 matchValue, Unit unitVar) in /mnt/c/Workspace/Smartian/EVMAnalysis/B2R2/src/MiddleEnd/BinEssence/BinEssence.fs:line 773
   at B2R2.MiddleEnd.BinEssence.BinEssenceModule.buildBlock(BinEssence ess, UInt64 func, UInt64 leader, FSharpList`1 addrs, UInt64 lastAddr, FSharpList`1 elms, FSharpOption`1 edgeInfo) in /mnt/c/Workspace/Smartian/EVMAnalysis/B2R2/src/MiddleEnd/BinEssence/BinEssence.fs:line 762
   at B2R2.MiddleEnd.BinEssence.BinEssenceModule.parseNewBBL(BinEssence ess, FSharpList`1 elms, UInt64 func, ArchOperationMode mode, UInt64 addr, FSharpOption`1 edgeInfo) in /mnt/c/Workspace/Smartian/EVMAnalysis/B2R2/src/MiddleEnd/BinEssence/BinEssence.fs:line 793
   at B2R2.MiddleEnd.BinEssence.BinEssenceModule.updateCFGWithEdge(BinEssence ess, FSharpList`1 elms, UInt64 func, ProgramPoint src, CFGEdgeKind edge, UInt64 dst) in /mnt/c/Workspace/Smartian/EVMAnalysis/B2R2/src/MiddleEnd/BinEssence/BinEssence.fs:line 833
   at B2R2.MiddleEnd.BinEssence.BinEssenceModule.updateCFG(BinEssence ess, UInt64 func, Boolean success, FSharpList`1 _arg1) in /mnt/c/Workspace/Smartian/EVMAnalysis/B2R2/src/MiddleEnd/BinEssence/BinEssence.fs:line 870
   at B2R2.MiddleEnd.BinEssence.BinEssenceModule.AddEntry(BinEssence ess, UInt64 addr, ArchOperationMode mode) in /mnt/c/Workspace/Smartian/EVMAnalysis/B2R2/src/MiddleEnd/BinEssence/BinEssence.fs:line 884
   at B2R2.MiddleEnd.BinEssence.BinEssenceModule.AddEntries@891-1.Invoke(Tuple`2 entry) in /mnt/c/Workspace/Smartian/EVMAnalysis/B2R2/src/MiddleEnd/BinEssence/BinEssence.fs:line 892
   at Microsoft.FSharp.Collections.ListModule.Fold[T,TState](FSharpFunc`2 folder, TState state, FSharpList`1 list) in D:\a\_work\1\s\src\fsharp\FSharp.Core\list.fs:line 221
   at B2R2.MiddleEnd.BinEssence.BinEssenceModule.AddEntries(BinEssence ess, FSharpList`1 entries) in /mnt/c/Workspace/Smartian/EVMAnalysis/B2R2/src/MiddleEnd/BinEssence/BinEssence.fs:line 890
   at B2R2.MiddleEnd.BinEssence.BinEssenceModule.Init(BinHandle hdl) in /mnt/c/Workspace/Smartian/EVMAnalysis/B2R2/src/MiddleEnd/BinEssence/BinEssence.fs:line 955
   at B2R2.MiddleEnd.Reclaimer.EVMCodeCopyAnalysis.B2R2.MiddleEnd.Reclaimer.IAnalysis.Run(BinEssence ess, AnalysisHint hint) in /mnt/c/Workspace/Smartian/EVMAnalysis/B2R2/src/MiddleEnd/Reclaimer/EVMCodeCopyAnalysis.fs:line 78
   at Microsoft.FSharp.Collections.ListModule.Fold[T,TState](FSharpFunc`2 folder, TState state, FSharpList`1 list) in D:\a\_work\1\s\src\fsharp\FSharp.Core\list.fs:line 221
   at B2R2.MiddleEnd.Reclaimer.Reclaimer.run(FSharpList`1 analyses, BinEssence ess) in /mnt/c/Workspace/Smartian/EVMAnalysis/B2R2/src/MiddleEnd/Reclaimer/Reclaimer.fs:line 32
   at EVMAnalysis.Parse.run(String binFile, String abiFile) in /home/nettrino/smartcontractfuzzing/tools/Smartian/EVMAnalysis/src/FrontEnd/Parse.fs:line 65
   at EVMAnalysis.TopLevel.parseAndAnalyze(String binFile, String abiFile) in /home/nettrino/smartcontractfuzzing/tools/Smartian/EVMAnalysis/src/Analysis/TopLevel.fs:line 96
   at Smartian.Fuzz.initializeWithDFA(FuzzOption opt) in /home/nettrino/smartcontractfuzzing/tools/Smartian/src/Fuzz/Fuzz.fs:line 21
   at Smartian.Fuzz.run[a](String[] args) in /home/nettrino/smartcontractfuzzing/tools/Smartian/src/Fuzz/Fuzz.fs:line 144
   at Smartian.Main.runMode(String mode, String[] optArgs) in /home/nettrino/smartcontractfuzzing/tools/Smartian/src/Main/Main.fs:line 14
   at Smartian.Main.main(String[] args) in /home/nettrino/smartcontractfuzzing/tools/Smartian/src/Main/Main.fs:line 22

I can provide the bin and abi files to reproduce if needed. OS is Debian GNU/Linux 11 (bullseye)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions