cne53102 发表于 2015-11-29 00:46:12

发个抠取启动参数的小东西,钓垃圾软件和研究别的软件用

刚才看到有坛友被快压QJ了,想起这个东西,发出来!
很简单的一个玩意,就是把命令行后面带的东西给记录下来,见笑了
起因是看到WPS总是启动一些我不想看到的东西。。
免费软件我可以理解。。也想表示支持。。
而且这也确实要不了我的命,但是我浑!身!耐!受!!
很多常用的程序都在这样偷偷摸摸搞些小动作。。
我的屏幕、内存、硬盘、CPU可不是供你们撒野的地方。。

最初用了这样的一个程序替换掉那些该死的玩意:
int main(){
        return 0;
}
发现大多数的垃圾并不能知道他们的一部分已经被替换掉了。
除了某狗带的手机管家以外。。(删光权限也可抵挡)

后来打算把这玩意再改改,我想要知道他们什么时候启动了这些,并且都跟这些狗沟通了什么。。

直接贴出代码:

#include <windows.h>
#include <time.h>
#include <stdio.h>
struct tm *localtime(const time_t *timep);
int main(int argc,char **argv){
    ShowWindow(FindWindow("ConsoleWindowClass",argv),0);//查找自己的窗口隐藏自身,这条好像不好使?谁有什么好办法?
    char drive;
    char dir;
    char fname;
    char ext;
    _splitpath(argv,drive,dir,fname,ext);//获取执行路径信息和自身文件名
    char *wday[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
    time_t timep;
    struct tm *p;
    time(&timep);
    p = localtime(&timep);//使用gmtime()的话有时差问题
    FILE *sfp;
    sfp=fopen("C:\\RSDA.log","a+");//建立或追加系统记录
    fprintf(sfp,"----------------\n");//分割线
    fprintf(sfp,"%d/%d/%d ",(1900+p->tm_year),(1+p->tm_mon),p->tm_mday);//记录日期
    fprintf(sfp,"%s ",wday);//记录星期
    fprintf(sfp,"%d:%d:%d\n",p->tm_hour,p->tm_min,p->tm_sec);//记录时间
    fprintf(sfp,"%s%s\n",strlen(drive)==0?"null":drive,strlen(dir)==0?"null":dir);//记录所在位置
    fprintf(sfp,"%s%s ",fname,ext);//饵食文件名.扩展名
    while(argc-->1)fprintf(sfp,"%s ",*++argv);//截取到的启动参数
    fprintf(sfp,"\n");//为下次记录换行
    fclose(sfp);
    return 0;
}

这个东西的用法就是用它替换掉你不想让它在你电脑里撒野的东西,变成同样的文件名放在原位。
然后当某软件试图启动它时,就会记录下时间和所带的参数,记录放在C盘根目录下的RSDA.log文件里,实际上就是txt格式的。

这个东西也可以用来研究一些别的软件是怎么调用另一个程序的,譬如用着XLoader上,替换掉它自带的avrdude,你就可以看到Xloader跟avrdude说了什么。。

这是替换掉wps里面一些鬼玩意后记录到的内容:



压缩包内是编译好的exe和main.c,想自己编译的话可以用codeblocks或任何你喜欢的东西。


写的多的还是单片机上的程序,这个代码应该是很菜的,而且并没有去找有没有什么同类的东西,如果你有更好或更好玩的调戏方式,请分享出来~

huangqi412 发表于 2015-11-29 02:15:45

这个是替代被调用软件,看看参数是什么。    先得知道主调用软件会偷偷打开哪些软件啊。。。      

zzy9903 发表于 2015-11-29 07:58:35

嗯,很好,很多小软件都是要被主程序带参数调用才能启动的,用这个软件就可以看到都带了些什么参数了
页: [1]
查看完整版本: 发个抠取启动参数的小东西,钓垃圾软件和研究别的软件用