How to insert new instruction at specified address in radare2
I want to add additional branch instruction at some addresses. I'm using radare2. The problem that insert commands overwrites the original instruction instead of adding new ones!
I tried to :
increase the file size at first by (r+ 4)
add null bytes (wen 4)
and then write (weX) but it didn't work
[0x00400580]> r+4
[0x00400580]> wen 4
[0x00400580]> weX 0x400580 03000094
this the original code and I want to insert (additional)new instruction at 0x400580
0x0040057c 04000014 b 0x40058c
0x00400580 e01f40b9 ldr w0, [sp + arg_1ch]
0x00400584 00040011 add w0, w0, 1
0x00400588 e01f00b9 str w0, [sp + arg_1ch]
I expected it to be
0x0040057c 04000014 b 0x40058c
0x00400580 03000094 bl 0x40058c
0x00400584 e01f40b9 ldr w0, [sp + arg_1ch]
0x00400588 00040011 add w0, w0, 1
0x0040058c e01f00b9 str w0, [sp + arg_1ch]
But actual output was:
0x0040057c 04000014 b 0x40058c
0x00400580 03000094 bl 0x40058c
0x00400584 00040011 add w0, w0, 1
0x00400588 e01f00b9 str w0, [sp + arg_1ch]
armv8 radare2
add a comment |
I want to add additional branch instruction at some addresses. I'm using radare2. The problem that insert commands overwrites the original instruction instead of adding new ones!
I tried to :
increase the file size at first by (r+ 4)
add null bytes (wen 4)
and then write (weX) but it didn't work
[0x00400580]> r+4
[0x00400580]> wen 4
[0x00400580]> weX 0x400580 03000094
this the original code and I want to insert (additional)new instruction at 0x400580
0x0040057c 04000014 b 0x40058c
0x00400580 e01f40b9 ldr w0, [sp + arg_1ch]
0x00400584 00040011 add w0, w0, 1
0x00400588 e01f00b9 str w0, [sp + arg_1ch]
I expected it to be
0x0040057c 04000014 b 0x40058c
0x00400580 03000094 bl 0x40058c
0x00400584 e01f40b9 ldr w0, [sp + arg_1ch]
0x00400588 00040011 add w0, w0, 1
0x0040058c e01f00b9 str w0, [sp + arg_1ch]
But actual output was:
0x0040057c 04000014 b 0x40058c
0x00400580 03000094 bl 0x40058c
0x00400584 00040011 add w0, w0, 1
0x00400588 e01f00b9 str w0, [sp + arg_1ch]
armv8 radare2
add a comment |
I want to add additional branch instruction at some addresses. I'm using radare2. The problem that insert commands overwrites the original instruction instead of adding new ones!
I tried to :
increase the file size at first by (r+ 4)
add null bytes (wen 4)
and then write (weX) but it didn't work
[0x00400580]> r+4
[0x00400580]> wen 4
[0x00400580]> weX 0x400580 03000094
this the original code and I want to insert (additional)new instruction at 0x400580
0x0040057c 04000014 b 0x40058c
0x00400580 e01f40b9 ldr w0, [sp + arg_1ch]
0x00400584 00040011 add w0, w0, 1
0x00400588 e01f00b9 str w0, [sp + arg_1ch]
I expected it to be
0x0040057c 04000014 b 0x40058c
0x00400580 03000094 bl 0x40058c
0x00400584 e01f40b9 ldr w0, [sp + arg_1ch]
0x00400588 00040011 add w0, w0, 1
0x0040058c e01f00b9 str w0, [sp + arg_1ch]
But actual output was:
0x0040057c 04000014 b 0x40058c
0x00400580 03000094 bl 0x40058c
0x00400584 00040011 add w0, w0, 1
0x00400588 e01f00b9 str w0, [sp + arg_1ch]
armv8 radare2
I want to add additional branch instruction at some addresses. I'm using radare2. The problem that insert commands overwrites the original instruction instead of adding new ones!
I tried to :
increase the file size at first by (r+ 4)
add null bytes (wen 4)
and then write (weX) but it didn't work
[0x00400580]> r+4
[0x00400580]> wen 4
[0x00400580]> weX 0x400580 03000094
this the original code and I want to insert (additional)new instruction at 0x400580
0x0040057c 04000014 b 0x40058c
0x00400580 e01f40b9 ldr w0, [sp + arg_1ch]
0x00400584 00040011 add w0, w0, 1
0x00400588 e01f00b9 str w0, [sp + arg_1ch]
I expected it to be
0x0040057c 04000014 b 0x40058c
0x00400580 03000094 bl 0x40058c
0x00400584 e01f40b9 ldr w0, [sp + arg_1ch]
0x00400588 00040011 add w0, w0, 1
0x0040058c e01f00b9 str w0, [sp + arg_1ch]
But actual output was:
0x0040057c 04000014 b 0x40058c
0x00400580 03000094 bl 0x40058c
0x00400584 00040011 add w0, w0, 1
0x00400588 e01f00b9 str w0, [sp + arg_1ch]
armv8 radare2
armv8 radare2
asked Dec 27 at 13:21
Sara
266
266
add a comment |
add a comment |
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53945801%2fhow-to-insert-new-instruction-at-specified-address-in-radare2%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53945801%2fhow-to-insert-new-instruction-at-specified-address-in-radare2%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown