C#编译的不是真正的exe和dll

准备一个免杀的dll,打算用白名单调用这个dll的。但是c#编译的不是真正的exe和dll,需要在.net环境下运行。
exe去调用dll的时候也会发现没有函数导出表,无法调用。

本次失败是因为没有了解各种语言的特性导致的。还是记录一下,以免忘记。要牢记这次教训。

第一步,用cs生成payload.bin

payload.bin
https://mega.nz/file/uIAE3JhJ#yNKmVBy-9OJdPZlvhXoK9rxDUbxAj9t9e0NtteLqQTs

12

第二步,对payload.bin进行加密

https://mega.nz/file/SMRWBTIS#QC2fS2-FcGKTd0nLIx-hyR2U3yYDG9EmYuT6vUXkrPQ

2_aes_encryption.exe payload.bin
生成加密的载荷

第三步,修改源码

将加密载荷托管到这个地址:
http://IP:8083/20210928101153

修改源码中的url为上述地址,修改解密payload的密码,需要和2_aes_encryption.exe加密密码一致
https://mega.nz/file/iBRCTRiR#v8tXHQNccieICLKGOq_Hs1CFrZ-hNZWzF2LvLyaKH7I

第四步,生成dll

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /target:library hollowing.cs

获得hollowing.dll

第五步,使用smartassembly对dll进行混淆

13

获得linkinfo.dll
1/30
14

fc099eba78606238c82a29a7d3d5bfabd1b58a248dae8e917ca6a0349d0801ac