首先动静态结合分析程序
跑起来会发现调用了3个DLL,用IDA先来看看main
简单猜想DLL1Print()是调用了DLL1,DLL2Print()是调用了DLL2
这里的extrn:说明这个函数是由外部实现的,这里是直接的外部调用(extern)
调用DLL3Print()函数是采用的不同的姿势
先使用LoadLibrary来获取DLL的句柄,接着使用GetProcAddress得到函数入口
所以v9是DLL3Print,v7是DLL3GetStructure
然后出现了一个原来没玩过的API:NetScheduleJobAdd(A,B,C)
根据英文的拼写可以猜到是在当前机器上添加了一个网络的计划任务,上网搜搜怎么查看当前的计划任务
再Sleep了100s,就把IDA中的main框架分析完了
然后来看DLL1
第一想法:这里的10001038函数,就是printf!但是为啥每次运行值都不一样呢,就很奇怪<