关注网络信息安全:
乱码个人微博 http://t.qq.com/Deianeira
启用新域名 http://www.deianeira.net
Deianeira QQ交流群:75847983

关于 StartService || net start GetLastError() 1083 iprip 6to4 = 2 Comments

作者: 乱码   日期:2012年5月9日 23:57   分类:其它       38 views

        能允许我说脏话吗?

        麻痹的,1083,我已经彻底记住你了。

        在做一个svchost宿主服务,敢情代码啥的没一点问题,可是就是新创建的服务不能立即启动,总是报 1083 “配置成在该可执行程序中运行的这个服务不能执行该服务” ,无论 net start xxx 多少次 还是 StartService 多少次,总是报1083,1083,1083.。。。,可是重启电脑后服务却又能正常运行,搞的我苦逼了一天,蛋碎了一地,有木有。。。。

 

        “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost”,在注册此项下面,有个字符串值“netsvcs” 里面默认有 6to4FastUserSwitchingCompatibility 和 Iprip 存在(俺的电脑存在,貌似新安装的xp默认就有这三个存在),看到这几个服务,是不是想到了啥。。。。,没想到?,好吧,俺不告诉你。。。,不过还是告诉你好了,gh0st

 

        gh0st,大部分的修改版都是用的这三个服务存在,想到这里就有问题了,为啥gh0stsvchost服务,却能运行后立马启动服务了? 就是因为gh0st用的是netsvcs里面已经存在的服务了,所以就不要重新启动电脑也能立即运行了;也就是说如果你的dll服务程序的服务名(-k netsvcs 为例,其它可能情况也一样)不是netsvcs的数值里面的一个,那么你的dll就必须要重新启动后才能成功运行的,为啥这样了,可能与svchost进程启动服务的机制有关吧,这方面俺没有详细去了解,如果你的服务名是已经存在netsvcs数值里面的话就不必重新启动也能立即执行了,绝大部分的gh0st就是用的这三个,系统已经默认存在的了服务,算是一个很好的技巧吧。


        弄了我一天啊,刚开始一直怀疑是代码问题,左百度右谷歌啥的,1083 又没看见多少这方面的资料,还下代码左看右看啥的,弄的我都有种想自杀的冲动了。。。。。。。

        哈哈,不过最后也能解决,算是很有点小小的成就感!

 

文件分割合并利器 by 乱码 vs2008 vc.net 完整项目 有图有真相 2 Comments

作者: 乱码   日期:2012年4月15日 15:10   分类:c&c++&vc.net    标签: fileDiv    96 views

文件分割合并利器 by 乱码 vs2008 vc.net 完整项目 有图有真相


点击查看原图

 

亮点之处:支持文件大小无上限,实际测试通过23.2G的文件,俺电脑里没比这个再大的文件了。

               可自定义分割大小,或者分割个数,让你轻松自如

               文件分割后,自动生成bat格式的合并文件

不足之处:VC.NET的,如果想转成C++的话,那么自己可以根据代码的思路来实现一遍

               不支持续分割。。。

               分割后文件校验,理论上应该要校验文件内容MD5

 

图啥的见上面,真相啥的自己下载附件。

开源一直是我的追求,希望更多的人加入到这个行列中来!

以前面试的时候,又一道被笔试的笔试题目。。。面试c++的孩纸注意了 0 Comments

作者: 乱码   日期:2012年4月15日 13:00   分类:c&c++&vc.net    标签: 被笔试的题目 strcpy    95 views
又一道被笔试的笔试题目,找出错误并写出错误原因

#include "stdafx.h"
#include <stdio.h>
#include <string.h>

int main(int argc, char* argv[])
{
char strDest[10], strSrc[10];

for(int i = 0; i < 10; i++)
{
strSrc[i] = 'a';
}
strcpy(strDest, strSrc);

printf("%s", strDest);

return 0;
}

//问题出在 strcpy(strDest, strSrc);

//下面是网上的解释
字符串和数组的区别:
字符串实际上也是由一个个的字符构成的,每一个字符都占据一个字节的空间,这一点和字符数组是一样的,但是字符串str后面会有一个追加的空字符’\0’来表示字符串的结尾,而字符数组是不用的。

strcpy这个函数需要两个字符指针char*参数,第一个参数表示目的字符串,第二个参数表示源字符串。
但是需要注意的就是第二个字符指针必须指向一个字符串,而不能是一个字符数组,因为strcpy()
函数具体实现里面有一个for(或者while)循环,而这个for(或者while)循环的结束条件就是碰到字符串中的空字符’\0’,如果第二个字符指针指向字符数组的话,将会导致for循环得不到正常结束,从而导致拷贝错误。

/**********************
* C语言标准库函数strcpy的一种典型的工业级的最简实现
* 返回值:
* 返回目标串的地址。
* 对于出现异常的情况ANSI-C99标准并未定义,故由实现者决定返回值,通常为NULL。
* 参数:
* strDestination
* 目标串
* strSource
* 源串
***********************/
char *strcpy(char *strDestination, const char *strSource)
{
 assert(strDestination && strSource);
 char *strD=strDestination;
 while ((*strDestination++=*strSource++)!='\0')
 NULL;
 return strD;
}

以前面试的时候,被笔试的笔试题目。。。面试c++的孩纸注意了 0 Comments

作者: 乱码   日期:2012年4月15日 10:45   分类:c&c++&vc.net    标签: ++ -- 被笔试的题目    86 views
请写出下列代码的输出内容

#include "stdafx.h"
#include <stdio.h>

int main(int argc, char* argv[])
{
int a,b,c,d,e;
a = 10;
b = a++; 
c = ++a; 
d = 10*a++; 

printf("b, c, d: %d, %d, %d", b, c, d);

return 0;
}

当时我给出的答案是 10,12,121,俺以为10*a=120后还会++,蛋碎的我。。。,正确的答案是10,12,120,因为++运算符不能用于常量或表达式,所以在这里++运算符只对a变量起作用。

下面从网上给出相关信息:
自增自减运算符的概念。
c++ 语言程序设计过程中, 我们经常用到x=x+1, x=x-1这 样 的赋值表达式,用更简洁的方式表示x=x+1可表示为: x++ 或 ++x, x=x-1 可表示为: x-- 或 --x,“++”“--”称为自增、自减运算符。

它们是单目运算符, 只能应用于变量, 而不能用于常量或表达式。
例如,以下用法是错误的:5++,(x+y)++。

自增自减运算符有两种使用形式:
前缀形式,即它们在操作数前,如 ++x、--x; 后缀形式, 即它们在操作数后, 如 x++、x--。 

使用时应注意:
结合性与简单赋值运算符相同,但优先级高于任何双目运算符。
表达式独立使用时,前缀形式与后缀形式无区别,如,i++; 和++i;单独使用这两者没有区别, 
但它们在表达式中被引用时, 结果是不同的。前缀形式是先增减, 后被引用; 后缀形式是先被引用, 后增减。

例如, 如果变量 x 的原值等于3:
1、y=++x (x 的值先变成 4, 再将 x 的值赋给 y,y 的值为 4;即先执行自增x=x+1,后执行引用y=x)
2、y=x++ (先将 x 的值 3 赋给 y,y 的值为 3,然后 x 的值变为 4;即先执行引用x的值y=x,后执行自增x=x+1)

Proxyer by 乱码 代理软件 vs2010 c# listview双缓冲 源码 1 Comments

作者: 乱码   日期:2012年4月15日 10:08   分类:c#&java    标签: Proxyer    152 views

Proxyer by 乱码 代理软件 vs2010 c# listview双缓冲 源码(完整工程请见附件)


点击查看原图

 

从代理网站中正则出IP,然后批量验证有效性,然后就没然后了。。。。。。

开源一直是我的追求,希望更多的人加入到这个行列中来!

 

Encrypter 文件异或加密 干啥用的 你懂得 文件2头文件 完整工程 0 Comments

作者: 乱码   日期:2012年4月15日 0:49   分类:c&c++&vc.net    标签: Encrypter    115 views

文件异或加密 干啥用的 你懂得 文件2头文件 完整工程(文件路径支持拖放)


点击查看原图

 

文件的解密就是用 加密后的代码 异或相同的值 即可,下面给出加密代码,当然文章的后面也有完整工程下载。


CFile file;

CFile file_create;

//打开文件

file.Open(cstrPath, CFile::modeRead);

file_create.Open(cstrPath + L".h", CFile::modeCreate | CFile::modeWrite);

 

//取整

int nXor = _wtoi(cstrXor.GetBuffer());

 

//判断是否到末尾

while (file.GetPosition() != file.GetLength())

{

file.Read(str_, 1);

str_[0] = str_[0] ^ nXor;

 

if (file.GetPosition() == file.GetLength())

{

//格式化字符串,转换成16进制代码

strTemp.Format("0x%02x };", (int)str_[0]); 

}

else if(file.GetPosition() % 16 == 0)

//格式化字符串,转换成16进制代码

strTemp.Format("0x%02x,\r\n", (int)str_[0]); 

}

else

{

//格式化字符串,转换成16进制代码

strTemp.Format("0x%02x, ", (int)str_[0]); 

}

 

        //叠加

        strHex += strTemp;

}

 

//写入文件

file_create.Write(strHex, strHex.GetLength());

 

file.Close();

file_create.Close();

 

MessageBox(L"异或完毕!");

 

开源一直是我的追求,希望更多的人加入到这个行列中来!

 

 

sitemap