Coder Social home page Coder Social logo

optimice's Introduction

Author: Branko Spasojevic
Mail: gljiva[at]gmail[dot]com
URL: http://code.google.com/p/optimice/

Tested with IDA 6.1 (should work in 6+, but differences in IDApython API are
possible, if you run into problems drop me a mail).

For quick intro check files in Usage section.

Usage:
------
Video version: http://optimice.googlecode.com/files/optimice.zip
FAQ: docs\FAQ.pdf

Any ideas, request and bug reports are welcome.

optimice's People

Contributors

gljiva avatar

Stargazers

Mohamed Saher avatar

Watchers

James Cloos avatar

optimice's Issues

IDA 6 hotkey issue

IDA 6.0.0110224

Alt+O is reserved for Options menu. Binding to, say, Alt + N works

Original issue reported on code.google.com by [email protected] on 4 Mar 2011 at 11:19

small modifier for PUSH will be missinterpreted

What steps will reproduce the problem?

Part of the Input code:

push    small 85Eh
mov     bx, 7Bh
mov     eax, 1
pop     bx

What is the expected output? 
No Fault

What do you see instead?

Failed to assemble [MOV bx, small 85Eh]

What version of the product are you using? On what operating system?
V 0.13

Please provide any additional information below.

It seems that the small modifier is handled as part of the operand value and 
passed thru the optimisation.

Original issue reported on code.google.com by [email protected] on 12 Dec 2011 at 11:29

Can't handle instruction pushfw (66h 9ch)


Starting optimization @ [0040d62c]
NOTE: INSTRUCTION NOT RECOGNIZED [PUSHFW] @ [0040d62d] [['PUSHFW']]
PUSHFW
[]
-------------
Traceback (most recent call last):
  File "E:/Programme/ida61adv/Optimice v0.13/code/Main.py", line 64, in wrapper
    optimice()
  File "E:/Programme/ida61adv/Optimice v0.13/code/Main.py", line 19, in optimice
    f = Function.Function(ea)
  File "E:/Programme/ida61adv/Optimice v0.13/code\Function.py", line 92, in __init__
    self.startAnalysis(self.start_ea)
  File "E:/Programme/ida61adv/Optimice v0.13/code\Function.py", line 468, in startAnalysis
    modified |= dead_code.ReduceBB(self.basic_blocks[prev_block_ea])
  File "E:/Programme/ida61adv/Optimice v0.13/code\CodeOptimization.py", line 108, in ReduceBB
    delta_taint = bb[delta].GetTaintInfo()
  File "E:/Programme/ida61adv/Optimice v0.13/code\Instruction.py", line 82, in GetTaintInfo
    self.taint = self.CalculateInstructionTaint()
  File "E:/Programme/ida61adv/Optimice v0.13/code\Instruction.py", line 448, in CalculateInstructionTaint
    if x86InstructionData[mnem].has_key(op):
KeyError: 'PUSHFW'
-------------

Original issue reported on code.google.com by [email protected] on 14 Dec 2011 at 11:10

CMP upfront pushf is acidentily remove by dead code elimination

What steps will reproduce the problem?
The code:
push    ebp             ; OPTY@[00001060];
mov     ebp, esp
push    ebx
push    esi
push    edi
pop     eax
cmp     ecx, eax
pushf
xor     eax, eax
pop     edi
pop     esi
pop     ebx
pop     ebp
retn

will be optimised to:
push    ebp             ; Origin@[00401010];
mov     ebp, esp
push    ebx
push    esi
mov     eax, edi
pushf
xor     eax, eax
pop     edi
pop     esi
pop     ebx
pop     ebp
retn


What is the expected output? What do you see instead?
push    ebp             ; Origin@[00401010];
mov     ebp, esp
push    ebx
push    esi
mov     eax, edi
cmp     ecx, eax
pushf
xor     eax, eax
pop     edi
pop     esi
pop     ebx
pop     ebp
retn


What version of the product are you using? On what operating system?
V0.13

Please provide any additional information below.
The CMP instruction is changing the FLAGS, that are pushed next.
So I thing the CMP shall not be removed as "dead code"

Original issue reported on code.google.com by [email protected] on 12 Dec 2011 at 11:34

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.