3、sub_403ED4子函数
我们接着来分析下一个函数,打开IDA
第一步 打开OD
返回的第一句代码是将我们之前所获取的不带文件名的地址赋值给EAX。
- lea eax, dword ptr ss:[ebp-0x3B4]
我们选中EAX在数据窗口中跟随,可以看到对应的值是“01BD0140”
我们在数据窗口跟随ctrl+G,看到如下:是不带文件名的文件路径,现在的EAX就是保存的这个值
第二步 继续分析代码,接下来将**“Desktop_.ini”赋值给EDX。注意,0x44表示为D(十进制68对应的ASCII码)。**
第三步 通过IDA大致看看call函数sub_403ED4
单纯这样看,很难分析出它的具体功能,我们不妨只关注他的两个参数。观察执行完该函数后的参数有什么变化;
第四步 留意数据窗口,然后按F8执行
可以看到刚才所获取的不带文件的路径名,在其后面增加了一个“Desktop_.ini”,从而组成了新的字符串。
分析到这里我们就知道了sub_403ED4功能是将上面所获取的不带文件名的路径地址赋值给eax,然后将字符串“Desktop_.ini”的地址赋给edx。
总结,重命名及对应功能如下:
- sub_403ED4 -> StringCat
- 功能:拼接字符串,包含“Desktop_.ini”后缀
4、sub_4057A4子函数
继续分析sub_4057A4子函数
第一步 在OD中查看EAX的地址,选中堆栈数值,右键“数据窗口中跟随数值”
可以看到,它的这个参数是我们之前已经连接好的字符串的首地址。
- 0x020F0138
第二步,按下F8运行至Call 4057A4函数,再按F7进入该函数分析。
继续按下F7进入call 0040573C,发现有个FindFirstFileA函数,我们直接来看看它的参数。注意,很多时候右边注释内容是没有的,需要我们手动分析。
按下F8执行到函数调用前位置,可以看到EAX中存放是的是刚才连接出来的字符串。该函数的作用就是说明要查找当前目录下Desktop_.ini文件是否存在。
- C:\Users\14551\Desktop\Desktop_.ini
总结,重命名及对应功能如下:
- sub_4057A4 -> CheckFileExist
- 功能:检测文件“Desktop_.ini”是否存在