【发布时间】:2020-02-18 15:40:10
【问题描述】:
假设我有两个字符串,我想比较字符串但不想为true 或false 调用另一个函数:
mov rsi, 0x4141414141414141
mov rdi, 0x6161616161616161
cmp rsi, rdi
// if true do here
// otherwise do here
// jmp back_up_to_cmp rsi, rdi
我遇到的问题是,我不能调用一个函数来判断真假。那么,有什么办法可以达到我的期望吗?
【问题讨论】:
-
你试过条件跳转吗?
-
@fuz well
jmp必须是jmp to_function这是我不想要的。 -
不,您可以
jne到当前函数内的标签。看看编译器如何实现if。请参阅 comparing string without using jmp in assembly? 上的 cmets,其中有类似的混淆点。 -
@Noobx 我想我不太了解您的限制。我对回答这样的问题并不感兴趣,因为一旦我写了答案,限制列表往往会突然出现新条目。
-
可以在shellcode中使用相对分支;它们与位置无关。 comparing string without using jmp in assembly? 的完全相同的副本(但只有 cmets 的答案)