在此crackme解决方案中,首先找到以下字符串:

$ rabin2 -z crackserial_linux

addr=0x00000aa0 off=0x00000aa0 ordinal=000 sz=7 len=7 section=.rodata type=A string=User:
addr=0x00000aa7 off=0x00000aa7 ordinal=001 sz=11 len=11 section=.rodata type=A string=Password:
addr=0x00000ab2 off=0x00000ab2 ordinal=002 sz=10 len=10 section=.rodata type=A string=Good job!
addr=0x00000abc off=0x00000abc ordinal=003 sz=10 len=10 section=.rodata type=A string=Try again


之后查找“好工作”所引用的字符串。 />
我尝试过相同的操作,但对我来说却不起作用:

$ radare2 crackserial_linux

 -- How about a nice game of chess?
[0x080488c4]> /c ab2
f hit_0 @ 0x08048841   # 5: push 0x8048ab2
[0x080488c4]>


为什么我的琴弦在不同的位置?

评论

/ c使用1118c使用模式匹配不会使用18c给您任何结果,在问为什么之前会产生很多结果。为什么?那是因为PIE并与虚拟内存有关吗?

#1 楼

更新:
如Daniel W Crompton所评论,/c命令已重新分配给加密货币,请使用axt查找引用。您最近发表的帖子似乎没有正确安装,可能是您应该尝试卸载并重新安装radare2软件包的原因。该命令本身对我来说似乎正常工作:
[0x140035bf0]> !radare2 -v
radare2 4.3.1 6 @ windows-x86-64 git.4.3.1
commit: 54ac837b5503f10f91e2069ac357791f7a3e635a build: Fri 03/06/2020__15:52:24.93
[0x140035bf0]> /c?
Usage: /c   Search for crypto materials
| /ca                 Search for AES keys expanded in memory
| /cc[algo] [digest]  Find collisions (bruteforce block length values until given checksum is found)
| /cd                 Search for ASN1/DER certificates
| /cr                 Search for ASN1/DER private keys (RSA and ECC)
使用/c使用模式匹配不会给您任何结果使用1118c会产生很多结果,然后再问为什么(这是盲目跟随您的18c/d90的缺点之一,属于此类别)。搜索对虚拟地址的外部参照
radare2-w32-0.9.9> cat xxx\helloworld.cpp

#include <stdio.h>
int main (void) {
  printf("hello world\n");
  return 0;
}

radare2-w32-0.9.9> radare2 xxx\helloworld.exe
[0x00401347]> iz~hello world  
    vaddr=0x0041218c paddr=0x0001118c ordinal=000 sz=13 len=12 section=.rdata type=a string=hello world\n    

在命中位置反汇编
[0x00401347]> /c 41218c
0x00401003   # 5: push 0x41218c


评论


/ c命令不再适用于此,它现在用于加密,axt继续工作。

–DaniëlW. Crompton
4月1日9:47

#2 楼

同样axt

axt @ hello_world_n这样的用法也可以提供参考。

评论


axt似乎只接受一个地址作为输入,而不是一个字符串,我能够哄骗axt在hello world.exe中使用axt str.hello_world_n打印一个外部参照,但是许多其他exe无法找到外部参照

– blabb
15年12月22日在13:36

是的,您给命令添加一个标志,也就是一个地址。要查找更多外部参照,请使用aar。 aaa包括aar。 r2 -bin.exe与aaa相同

–麦金
2015年12月22日14:17