反汇编中的奇怪函数(IDA)

逆向工程 艾达 拆卸
2021-06-13 04:06:52

我在 IDA 中反转了一个可执行文件,并发现了具有以下结构的函数:

.text:0058A6E0 sub_58A6E0      proc near               
.text:0058A6E0
.text:0058A6E0 var_4           = dword ptr -4
.text:0058A6E0
.text:0058A6E0                 push    ecx
.text:0058A6E1                 mov     ecx, ds:SHAppBarMessage
.text:0058A6E7                 mov     eax, offset loc_612BC0
.text:0058A6EC                 or      eax, offset loc_612BBA
.text:0058A6F1                 or      eax, offset loc_612BB4
.text:0058A6F6                 or      eax, offset loc_612BAE
.text:0058A6FB                 or      eax, ecx
.text:0058A6FD                 mov     ecx, ds:ShellExecuteW
.text:0058A703                 or      eax, ecx
.text:0058A705                 mov     ecx, ds:SHGetFileInfoW
.text:0058A70B                 or      eax, ecx
.text:0058A70D                 mov     ecx, ds:VariantInit
.text:0058A713                 or      eax, ecx
.text:0058A715                 mov     ecx, ds:VariantClear
.text:0058A71B                 or      eax, ecx
.text:0058A71D                 mov     ecx, ds:VariantCopy
.text:0058A723                 or      eax, ecx
.text:0058A725                 mov     ecx, ds:VariantCopyInd
.text:0058A72B                 or      eax, ecx
.text:0058A72D                 mov     ecx, ds:VariantChangeType
...

Lots of different functions.

...
.text:0058B8B8                 or      eax, ecx
.text:0058B8BA                 mov     ecx, ds:RegCloseKey
.text:0058B8C0                 or      eax, ecx
.text:0058B8C2                 mov     ecx, ds:RegOpenKeyExW
.text:0058B8C8                 or      eax, ecx
.text:0058B8CA                 mov     ecx, ds:RegQueryValueExW
.text:0058B8D0                 or      eax, ecx
.text:0058B8D2                 mov     ecx, dword_617AC4
.text:0058B8D8                 or      eax, offset loc_6129F8
...
Repeating simillar stuff
...
.text:0058B8F6                 or      eax, offset loc_6129D4
.text:0058B8FB                 or      eax, ecx
.text:0058B8FD                 mov     ecx, [esp+4+var_4]
.text:0058B901                 or      eax, offset loc_6129CE
.text:0058B906                 or      eax, offset loc_6129C8
...
Repeating simillar stuff
...
.text:0058B938                 or      eax, offset loc_61298C
.text:0058B93D                 or      eax, offset loc_612986
.text:0058B942                 or      eax, ecx
.text:0058B944                 pop     ecx
.text:0058B945                 retn
.text:0058B945 sub_58A6E0      endp

我试图找到它是什么以及为什么使用它,但我实际上一无所获。这不是我第一次看到类似的功能,所以我很想知道它是什么。这对我来说没有任何意义,只是滥用进口。谢谢你。

UPD:此功能的某些部分有十六进制值。

C1 8B 0D 20 65 61 00 0B  C1 8B 0D 1C 65 61 00 0B
C1 8B 0D 18 65 61 00 0B  C1 8B 0D 14 65 61 00 0B
C1 8B 0D 10 65 61 00 0B  C1 8B 0D 0C 65 61 00 0B
C1 8B 0D 08 65 61 00 0B  C1 8B 0D 04 65 61 00 0B
C1 8B 0D 00 65 61 00 0B  C1 8B 0D FC 64 61 00 0B
C1 8B 0D F8 64 61 00 0B  C1 8B 0D F4 64 61 00 0B
C1 8B 0D F0 64 61 00 0B  C1 8B 0D EC 64 61 00 0B
C1 8B 0D E8 64 61 00 0B  C1 8B 0D E4 64 61 00 0B
C1 8B 0D E0 64 61 00 0B  C1 8B 0D DC 64 61 00 0B
C1 8B 0D D8 64 61 00 0B  C1 8B 0D D4 64 61 00 0B
C1 8B 0D D0 64 61 00 0B  C1 8B 0D CC 64 61 00 0B
C1 8B 0D C8 64 61 00 0B  C1 8B 0D C4 64 61 00 0B
C1 8B 0D C0 64 61 00 0B  C1 8B 0D BC 64 61 00 0B
C1 8B 0D B8 64 61 00 0B  C1 8B 0D B4 64 61 00 0B
C1 8B 0D B0 64 61 00 0B  C1 8B 0D AC 64 61 00 0B
C1 8B 0D A8 64 61 00 0B  C1 8B 0D A4 64 61 00 0B
0个回答
没有发现任何回复~