我正在分析的部分代码在ghidra中进行反编译,如下所示:

可以在同一功能的多个位置找到它。

评论

单击CONCAT22语句时,应显示相应的反汇编。请包括此拆卸

#1 楼

我想发表评论,但是它长大了,所以回答

CONCAT是串联的

22是一个后缀,表示两个字节与两个字节串联从第一个位置取两个字节,从第二个位置取两个字节,并产生4个字节的结果

在这里,它可能是一个宽字符串
您可以看到两个字节的区别在地址中也是如此xxa37e,yya37c等

如所评论,请单击地址或宏以进行反汇编并查看构造

这是一个很大的连接< >
return CONCAT2325(extraout_var,CONCAT124(1,CONCAT816(local_48,CONCAT88(uVar3,local_58)))) &
       0xffffffffffffffff;

concat           88 = 8+8  say something RDX+rcx   
next is          816 which means 8 + 16      << 16 is from earlier concat   
next is          124 which means 1 + 24      << 24 is from earlier concat   
next is          2325 which means 23 + 25     << 25 is from earlier concat   


以及与此反汇编有关的反汇编

00461277 48 89 84        MOV        qword ptr [Stack[0x18] + RSP],RAX
         24 80 00 
         00 00
00461284 48 89 84        MOV        qword ptr [Stack[0x20] + RSP],RAX
         24 88 00 
         00 00
0046128c c6 84 24        MOV        byte ptr [Stack[0x28] + RSP],0x1
         90 00 00 
         00 01
00461297 0f 11 84        MOVUPS     xmmword ptr [Stack[0x30] + RSP],XMM0
         24 98 00 
         00 00
004612a8 c3              RET
                     ********** bufio.(*Reader).ReadLine Exit ********** 


评论


“下一个是2335”应该应该是“下一个是2325”

– RokTavčar
19-10-9在6:29