Skip to content
This repository has been archived by the owner on Dec 26, 2023. It is now read-only.

some error message and can't be displayed in graph mode. #2

Open
ResidualLaugh opened this issue Nov 30, 2018 · 5 comments
Open

some error message and can't be displayed in graph mode. #2

ResidualLaugh opened this issue Nov 30, 2018 · 5 comments
Assignees
Labels
bug Something isn't working

Comments

@ResidualLaugh
Copy link

What happened to idawasm/processor.py

error message

Possible file format: WebAssembly v1 executable (/Applications/IDA Pro 7.0/ida64.app/Contents/MacOS/loaders/wasm_loader.py)

  bytes   pages size description
--------- ----- ---- --------------------------------------------
   262144    32 8192 allocating memory for b-tree...
    65536     8 8192 allocating memory for virtual array...
   262144    32 8192 allocating memory for name pointers...
-----------------------------------------------------------------
   589824            total memory allocated

Loading file '/Users/residuallaugh/Desktop/job/webassembly/quicksort/quicksort.wasm' into database...
Detected file format: WebAssembly v1 executable
Loading processor module /Applications/IDA Pro 7.0/ida64.app/Contents/MacOS/procs/wasm_proc.py for wasm...OK
Autoanalysis subsystem has been initialized.
  0. Creating a new segment  (0000000000000000-0000000000000008) ... ... OK
  1. Creating a new segment  (0000000000000008-0000000000000018) ... ... OK
  2. Creating a new segment  (0000000000000018-000000000000001D) ... ... OK
  3. Creating a new segment  (000000000000001D-0000000000000022) ... ... OK
  4. Creating a new segment  (0000000000000022-0000000000000041) ... ... OK
  5. Creating a new segment  (0000000000000041-00000000000000FA) ... ... OK
Flushing buffers, please wait...INFO:idawasm.processor:saving wasm processor state.
ok
File '/Users/residuallaugh/Desktop/job/webassembly/quicksort/quicksort.wasm' has been successfully loaded into the database.
INFO:idawasm.processor:new file: /Users/residuallaugh/Desktop/job/webassembly/quicksort/quicksort.wasm
INFO:idawasm.processor:parsing sections
INFO:idawasm.processor:parsing types
INFO:idawasm.processor:parsing globals
ERROR:idawasm.processor:exception in notify_newfile
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/idawasm/processor.py", line 58, in wrapper
    return f(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/idawasm/processor.py", line 533, in notify_newfile
    self.load()
  File "/Library/Python/2.7/site-packages/idawasm/processor.py", line 491, in load
    self.globals = self._parse_globals()
  File "/Library/Python/2.7/site-packages/idawasm/processor.py", line 309, in _parse_globals
    global_section = self._get_section(wasm.wasmtypes.SEC_GLOBAL)
  File "/Library/Python/2.7/site-packages/idawasm/processor.py", line 155, in _get_section
    raise KeyError(section_id)
KeyError: 6
IDA is analysing the input file...
You may start to explore the input file right now.
------------------------------------------------------------------------------------------------------------
Python 2.7.10 (default, Aug 17 2018, 17:41:52) 
[GCC 4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.0.42)] 
IDAPython 64-bit v1.7.0 final (serial 0) (c) The IDAPython Team <[email protected]>
------------------------------------------------------------------------------------------------------------
The initial autoanalysis has been finished.
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/idawasm/processor.py", line 58, in wrapper
    return f(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/idawasm/processor.py", line 900, in notify_out_operand
    f = self._get_function(ctx.insn.ea)
  File "/Library/Python/2.7/site-packages/idawasm/processor.py", line 861, in _get_function
    raise KeyError(ea)
KeyError: 237L
ERROR:idawasm.processor:exception in notify_out_operand
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/idawasm/processor.py", line 58, in wrapper
    return f(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/idawasm/processor.py", line 900, in notify_out_operand
    f = self._get_function(ctx.insn.ea)
  File "/Library/Python/2.7/site-packages/idawasm/processor.py", line 861, in _get_function
    raise KeyError(ea)
KeyError: 242L
ERROR:idawasm.processor:exception in notify_out_operand
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/idawasm/processor.py", line 58, in wrapper
    return f(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/idawasm/processor.py", line 933, in notify_out_operand
    f = self.functions[op.value]
KeyError: 1L
ERROR:idawasm.processor:exception in notify_out_operand
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/idawasm/processor.py", line 58, in wrapper
    return f(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/idawasm/processor.py", line 900, in notify_out_operand
    f = self._get_function(ctx.insn.ea)
  File "/Library/Python/2.7/site-packages/idawasm/processor.py", line 861, in _get_function
    raise KeyError(ea)
KeyError: 242L
ERROR:idawasm.processor:exception in notify_out_operand
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/idawasm/processor.py", line 58, in wrapper
    return f(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/idawasm/processor.py", line 933, in notify_out_operand
    f = self.functions[op.value]
KeyError: 1L
ERROR:idawasm.processor:exception in notify_out_operand
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/idawasm/processor.py", line 58, in wrapper
    return f(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/idawasm/processor.py", line 900, in notify_out_operand
    f = self._get_function(ctx.insn.ea)
  File "/Library/Python/2.7/site-packages/idawasm/processor.py", line 861, in _get_function
    raise KeyError(ea)
KeyError: 247L
@williballenthin
Copy link
Contributor

Sorry, I've been (and will be for a few more days) AFK.

Looks like we need to tighten up the assumptions made about webassembly module, eg. don't assume that the globals section exists (exception #1) above.

The second sequence of exceptions is more difficult to triage. Are you able to share the .wasm file?

@acoutts
Copy link

acoutts commented Dec 19, 2018

I'm getting the same key errors errors @williballenthin - also it seems I do not see any xrefs created so it's difficult to follow code flow. Is there supposed to be xrefs?

Attached is a WASM file I was looking at:
chintai.wasm.zip

@miraclegray
Copy link

Getting the same key errors and unknown opcode errors, @williballenthin.
xref is still not working for me, too.
Any plan to update idawasm? We are looking forward to it.

@williballenthin
Copy link
Contributor

Unfortunately, I don't have much time to maintain this project these days, particularly because I don't deal with wasm often :-(

Its possible that I can find some spare time between now and the new year, but no promises. I hope that this is a matter of adding a couple opcodes and better handling of some conditional constructs. I'll update this thread if I have time.

In the meantime, I'm happy to work with any contributors that want to learn the code base and attempt a fix.

@athre0z
Copy link

athre0z commented Oct 8, 2019

If any of those KeyErrors trace back to my wasm lib, feel free to just mention me here and I’ll take a look! Handling of incorrect / corrupted wasm files isn’t particularly great on my side either but should be a quick fix.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

5 participants