Giter Site home page Giter Site logo

m417z / multiline-ultimate-assembler Goto Github PK

View Code? Open in Web Editor NEW
93.0 93.0 20.0 1.23 MB

A multiline (and ultimate) assembler (and disassembler) plugin for x64dbg and OllyDbg. A perfect tool for modifying and extending a compiled executable functionality.

Home Page: https://ramensoftware.com/multimate-assembler

License: GNU General Public License v3.0

C 97.44% C++ 2.56%
assembler ollydbg ollydbg-plugin reverse-engineering x64dbg x64dbg-plugin

multiline-ultimate-assembler's People

Contributors

m417z avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

multiline-ultimate-assembler's Issues

Is there a way to get offset automatically?

<$module.xxxx>
call    @GetEIP
add    eax, 0x1234   ; 0x1234 is the offset of @string relative to the address of current code
...

@GetEIP:
mov eax, [esp]
ret

@string:
"I need the address of this string"

Because this file is a DLL and I don't want to modify the relocation, so I can't use the absolute address of the string to make a patch.

lea   eax,[@string] ; get a incorrect address after restart the program

so I use "GetEIP“ to get the value of EIP, and then I calculate the offset of the string relate to EIP, and add it to the value of EIP,and then I get the address of @string.
but if I edit the code , I have to re-calculate the offset manually.
Is there a way to get the offset automatically like this:

call    @GetEIP
add    eax, @string - $

In fact, the value of "@string - $" can be calculated statically,but I checked the help file , I can't find any thing to do this.

replace some instruction

Hello i need help to find and replace some instruction tellme how do this using you plugin please
image
here is the code

var endAddress
var currentAddress
var instruction

mov startAddress, 0x0040FC16
mov endAddress, 0x0A4C40F6
mov currentAddress, startAddress

start:
    cmp currentAddress, endAddress
    ja end

    mov eax, currentAddress
    disasm eax, instruction

    cmp instruction, "CMP BYTE PTR SS:[EBP-0x1], 0x0"
    je replace

next:
    add currentAddress, 1
    jmp start

replace:
    mov eax, currentAddress
    asm eax, "CMP BYTE PTR SS:[EBP-0x1], 0x1"
    jmp next

end:

Please add Cheat Engine like code cave management.

Please see the discussion here:

x64dbg/x64dbg#729

Adding Cheat Engine like code cave management would make this plugin perfect. I'm imagining a option to specify the address range of the codecave and let the plugin write the new code in this codecave automatically. This will solve the problem of tracking the addresses and code inside the code cave which makes working with code caves at some point complex and which is a key advantage of Cheat Engine over x64dbg.

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.