How to print eax value with Radare2?
I am solving a crack me challenge but I am stuck. The challenge executes several jne
tests. The first test is the simpliest but I don't arrive to print the eax
value to know the content of cmp
instruction. According to this block of code :
| ; DATA XREF from sym.main (0x804848e)
| 0x08048497 b88a55ea8b mov eax, 0x8bea558a
| 0x0804849c 45 inc ebp
| 0x0804849d f4 hlt
| 0x0804849e 83c004 add eax, 4
| 0x080484a1 8a00 mov al, byte [eax]
| 0x080484a3 38c2 cmp dl, al
|,=< 0x080484a5 753d jne 0x80484e4
How can I print the eax
value to understand what are compared in the instruction ?
0x080484a1 8a00 mov al, byte [eax]
According to this question, I tried the 0x080484a1
but when I enter the command pxr 1 @ eax+0x4
, nothing appears. If I enter the command pxr @ eax+0x4
, this code appears :
0x080c288c 0x6f6c6165 ealo ascii
0x080c2890 0x00796768 hgy. ascii
The ascii printed is linked with the string compared ksuiealohgy
.
debugging radare2 debuggers
add a comment |
I am solving a crack me challenge but I am stuck. The challenge executes several jne
tests. The first test is the simpliest but I don't arrive to print the eax
value to know the content of cmp
instruction. According to this block of code :
| ; DATA XREF from sym.main (0x804848e)
| 0x08048497 b88a55ea8b mov eax, 0x8bea558a
| 0x0804849c 45 inc ebp
| 0x0804849d f4 hlt
| 0x0804849e 83c004 add eax, 4
| 0x080484a1 8a00 mov al, byte [eax]
| 0x080484a3 38c2 cmp dl, al
|,=< 0x080484a5 753d jne 0x80484e4
How can I print the eax
value to understand what are compared in the instruction ?
0x080484a1 8a00 mov al, byte [eax]
According to this question, I tried the 0x080484a1
but when I enter the command pxr 1 @ eax+0x4
, nothing appears. If I enter the command pxr @ eax+0x4
, this code appears :
0x080c288c 0x6f6c6165 ealo ascii
0x080c2890 0x00796768 hgy. ascii
The ascii printed is linked with the string compared ksuiealohgy
.
debugging radare2 debuggers
does the execution reach that place ? there is a hlt instruction before i dont think your execution will reach this point if the flow was linear en.wikipedia.org/wiki/HLT_(x86_instruction)
– blabb
Mar 4 at 4:31
Yes it reach that place.The problem is solved, thanks for your contribution.
– Anonyme
Mar 4 at 12:31
add a comment |
I am solving a crack me challenge but I am stuck. The challenge executes several jne
tests. The first test is the simpliest but I don't arrive to print the eax
value to know the content of cmp
instruction. According to this block of code :
| ; DATA XREF from sym.main (0x804848e)
| 0x08048497 b88a55ea8b mov eax, 0x8bea558a
| 0x0804849c 45 inc ebp
| 0x0804849d f4 hlt
| 0x0804849e 83c004 add eax, 4
| 0x080484a1 8a00 mov al, byte [eax]
| 0x080484a3 38c2 cmp dl, al
|,=< 0x080484a5 753d jne 0x80484e4
How can I print the eax
value to understand what are compared in the instruction ?
0x080484a1 8a00 mov al, byte [eax]
According to this question, I tried the 0x080484a1
but when I enter the command pxr 1 @ eax+0x4
, nothing appears. If I enter the command pxr @ eax+0x4
, this code appears :
0x080c288c 0x6f6c6165 ealo ascii
0x080c2890 0x00796768 hgy. ascii
The ascii printed is linked with the string compared ksuiealohgy
.
debugging radare2 debuggers
I am solving a crack me challenge but I am stuck. The challenge executes several jne
tests. The first test is the simpliest but I don't arrive to print the eax
value to know the content of cmp
instruction. According to this block of code :
| ; DATA XREF from sym.main (0x804848e)
| 0x08048497 b88a55ea8b mov eax, 0x8bea558a
| 0x0804849c 45 inc ebp
| 0x0804849d f4 hlt
| 0x0804849e 83c004 add eax, 4
| 0x080484a1 8a00 mov al, byte [eax]
| 0x080484a3 38c2 cmp dl, al
|,=< 0x080484a5 753d jne 0x80484e4
How can I print the eax
value to understand what are compared in the instruction ?
0x080484a1 8a00 mov al, byte [eax]
According to this question, I tried the 0x080484a1
but when I enter the command pxr 1 @ eax+0x4
, nothing appears. If I enter the command pxr @ eax+0x4
, this code appears :
0x080c288c 0x6f6c6165 ealo ascii
0x080c2890 0x00796768 hgy. ascii
The ascii printed is linked with the string compared ksuiealohgy
.
debugging radare2 debuggers
debugging radare2 debuggers
asked Mar 3 at 20:01
AnonymeAnonyme
464
464
does the execution reach that place ? there is a hlt instruction before i dont think your execution will reach this point if the flow was linear en.wikipedia.org/wiki/HLT_(x86_instruction)
– blabb
Mar 4 at 4:31
Yes it reach that place.The problem is solved, thanks for your contribution.
– Anonyme
Mar 4 at 12:31
add a comment |
does the execution reach that place ? there is a hlt instruction before i dont think your execution will reach this point if the flow was linear en.wikipedia.org/wiki/HLT_(x86_instruction)
– blabb
Mar 4 at 4:31
Yes it reach that place.The problem is solved, thanks for your contribution.
– Anonyme
Mar 4 at 12:31
does the execution reach that place ? there is a hlt instruction before i dont think your execution will reach this point if the flow was linear en.wikipedia.org/wiki/HLT_(x86_instruction)
– blabb
Mar 4 at 4:31
does the execution reach that place ? there is a hlt instruction before i dont think your execution will reach this point if the flow was linear en.wikipedia.org/wiki/HLT_(x86_instruction)
– blabb
Mar 4 at 4:31
Yes it reach that place.The problem is solved, thanks for your contribution.
– Anonyme
Mar 4 at 12:31
Yes it reach that place.The problem is solved, thanks for your contribution.
– Anonyme
Mar 4 at 12:31
add a comment |
1 Answer
1
active
oldest
votes
Not sure why you used pxr
as you could get the output with px 1 @ eax+0x4
. But another options would be that you could run this opcode and then read the register value of al
to get that. But in order to do that you need to use debugger commands instead (of course you need to be in debugging mode):
[0x7f5953803e90]> dr?
Usage: dr Registers commands
| dr Show 'gpr' registers
<snip>
So to get the value of al
execute during debugging session:
[0x7f5953803e90]> dr al
0x00000090
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "489"
};
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: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
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
},
noCode: 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%2freverseengineering.stackexchange.com%2fquestions%2f20762%2fhow-to-print-eax-value-with-radare2%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Not sure why you used pxr
as you could get the output with px 1 @ eax+0x4
. But another options would be that you could run this opcode and then read the register value of al
to get that. But in order to do that you need to use debugger commands instead (of course you need to be in debugging mode):
[0x7f5953803e90]> dr?
Usage: dr Registers commands
| dr Show 'gpr' registers
<snip>
So to get the value of al
execute during debugging session:
[0x7f5953803e90]> dr al
0x00000090
add a comment |
Not sure why you used pxr
as you could get the output with px 1 @ eax+0x4
. But another options would be that you could run this opcode and then read the register value of al
to get that. But in order to do that you need to use debugger commands instead (of course you need to be in debugging mode):
[0x7f5953803e90]> dr?
Usage: dr Registers commands
| dr Show 'gpr' registers
<snip>
So to get the value of al
execute during debugging session:
[0x7f5953803e90]> dr al
0x00000090
add a comment |
Not sure why you used pxr
as you could get the output with px 1 @ eax+0x4
. But another options would be that you could run this opcode and then read the register value of al
to get that. But in order to do that you need to use debugger commands instead (of course you need to be in debugging mode):
[0x7f5953803e90]> dr?
Usage: dr Registers commands
| dr Show 'gpr' registers
<snip>
So to get the value of al
execute during debugging session:
[0x7f5953803e90]> dr al
0x00000090
Not sure why you used pxr
as you could get the output with px 1 @ eax+0x4
. But another options would be that you could run this opcode and then read the register value of al
to get that. But in order to do that you need to use debugger commands instead (of course you need to be in debugging mode):
[0x7f5953803e90]> dr?
Usage: dr Registers commands
| dr Show 'gpr' registers
<snip>
So to get the value of al
execute during debugging session:
[0x7f5953803e90]> dr al
0x00000090
answered Mar 3 at 21:05
Paweł ŁukasikPaweł Łukasik
2,4811520
2,4811520
add a comment |
add a comment |
Thanks for contributing an answer to Reverse Engineering Stack Exchange!
- 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%2freverseengineering.stackexchange.com%2fquestions%2f20762%2fhow-to-print-eax-value-with-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
does the execution reach that place ? there is a hlt instruction before i dont think your execution will reach this point if the flow was linear en.wikipedia.org/wiki/HLT_(x86_instruction)
– blabb
Mar 4 at 4:31
Yes it reach that place.The problem is solved, thanks for your contribution.
– Anonyme
Mar 4 at 12:31