这两个函数都在msvcrt.dll动态链接库中,贴出汇编代码:
这两个函数都没有参数,分别返回__argc、__argv变量,这两个变量定义如下:
长度4字节,值为0(确切说应该是NULL)。暂时不知道这两个函数作用,不过可以猜到和main函数参数脱不了干系。
在样本的汇编代码中发现有明显的调用__p__argc( )、__p__argv( )函数(暂不清楚是作者主动写的,还是编译器加上)
使用ollydgb调试__p__argc( )如下:
这个eax值很大,很明显应该是一个地址,指向值是1(莫不是说程序运行时只有一个参数,就是程序本身名),至于为什么原来的NULL会变成0x771530E4,个人估计是在操作系统加载可执行程序时修改了这个值,很有可能是在start( )函数中。