小坏 发布的文章

一个蛋疼的问题处理记录

公司电闸突然跳闸工作机断电关机

开机一切正常 fedora 输入登密码后 卡死在系统设置加载那里。。重启,更换内核版本启动都无效

重启 进入Fedora ,with Linux 。。。。。。。 正常进入

卸载其他的内核版本 

reboot

再次进入Fedora ,with Linux 。。

uname -r

yum -y install install kernel-devel kernel-headers kernel-modules-extra kernel-tools kernel-tools-libs kernel-tools-libs-devel

//install uname-r 的对应版本

重新安装内核跟相关的东西。。

reboot

搞定。。。


PS:

由于把其他的内核版本都卸载了所以导致LVM2的机械硬盘无法挂载 重新安装内核后可挂

DNS查询代码For Delphi{改}

这次可以把查询出的IP都列出来了

但是没有显示A cName转发等类型..

因为我用不上哪些暂时...

Function QueryDNS2(szHost:PAnsiChar; Server:PAnsiChar; Var bMuch:Boolean):PAnsiChar;
Label OnExit;
Var
  dnshdr :PDNS_HDR;
  dnsqer :PDNS_QER;
  Buffer :Array [0..BUF_SIZE-1] Of Byte;
  nSocket:TSocket;
  SerAddr:TSockAddrIn;
  I      :Integer;
  nRet   :Integer;
  dwLen  :Integer;
  szDump :PAnsiChar;
  szDebug:Array [0..31] Of AnsiChar;
begin
  ZeroMemory(@Result, SizeOf(TIPAddr));
  nSocket := socket(AF_INET, SOCK_DGRAM, 0);
  If nSocket = INVALID_SOCKET then  Exit;
  SetSocketIoOutTime(nSocket, 8000);
  SerAddr.sin_family        := AF_INET;
  SerAddr.sin_port          := Htons(SRV_PORT);
  SerAddr.sin_addr.s_addr   := Inet_Addr(Server);
  if SerAddr.sin_addr.s_addr = SOCKET_ERROR then Goto OnExit;
  ZeroMemory(@Buffer, BUF_SIZE);
  Randomize;
  dnshdr       := @Buffer;
  dnshdr^.id   := Random(65534);  //$5260;
  dnshdr^.tag  := htons($0100);
  dnshdr^.numq := htons(1);
  dnshdr^.numa := 0;
  lstrcpyA(@Buffer[SizeOf(DNS_HDR) + 1], szHost);
  I           := SizeOf(DNS_HDR) + 1;
  dwLen       := 0;
  While dwLen < lstrlenA(szHost)-2 Do
  begin
    if Buffer[I + dwLen] = 0 then Break;
    If AnsiChar(Buffer[I + dwLen]) = '.' Then
    begin
      Buffer[I - 1] := dwLen;
      Inc(I, dwLen + 1);
      dwLen := 0;
    end Else
    begin
      Inc(dwLen);
    end;
  end;
  Buffer[I - 1]   := dwLen;
  dnsqer          := PDNS_QER(@Buffer[SizeOf(DNS_HDR) + 3 + lstrlenA(szHost) - 1]);
  dnsqer^.utype   := htons(1);
  dnsqer^.classes := htons(1);
  sendto(nSocket, Buffer, SizeOf(DNS_HDR) + SizeOf(DNS_QER) + lstrlenA(szHost) + 2, 0, SerAddr, SizeOf(TSockAddrIn));
  I    := SizeOf(TSockAddrIn);
  ZeroMemory(@Buffer, BUF_SIZE);
  nRet := recvfrom(nSocket, Buffer, BUF_SIZE, 0, SerAddr, I);
  if dnshdr.numa = 0 then //这里=0是不存在的域名
  begin
    Result := Nil;
    Goto OnExit;
  End Else
  begin
    dwLen     := 0;
    szDump    := @Buffer[nRet - 1];
    I         := PByte(@szDump[-4])^;
    while I = 4 do
    begin      
      Dec(PByte(szDump), 16);
      I       := PByte(@szDump[-4])^;
      Inc(dwLen);
    end;
    bMuch     := dwLen > 1;    
    Result    := GetMemory(20 * dwLen);
    ZeroMemory(Result, 20 * dwLen);
    Inc(PByte(szDump), 12);
    while Ord(szDump[0]) = 4 do
    begin
      Inc(PByte(szDump));              
      FormatA(@szDebug, '%d.%d.%d.%d   ', Ord(szDump[0]), Ord(szDump[1]), Ord(szDump[2]), Ord(szDump[3]));
      lstrcatA(Result, @szDebug);
      Inc(PByte(szDump), 4);
      Inc(PByte(szDump), 11);
    end;  
  end;

  OnExit :
  closesocket(nSocket);
end;


Ping包的DNS查询代码For Delphi

抓包抓的是Ping包的查询不是Nslookup所以内容有点少

Type
  PDNS_HDR = ^DNS_HDR;
  DNS_HDR = Record
    id    :Word; //ID编号有本地指定 服务器 返回时也带有此ID
    tag   :Word;
    numq  :Word;
    numa  :Word;
    numa1 :Word;
    numa2 :Word;
  End;

  PDNS_QER = ^DNS_QER;
  DNS_QER = Record
    utype   :Word;
    classes :Word;
  End;

  TIPAddr = Array [0..3] Of Byte;

Const
  BUF_SIZE = 1024;
  SRV_PORT = 53;
  
  
Function QueryDNS(szHost:PAnsiChar; Server:PAnsiChar):TIPAddr;
Label OnExit;
Var
  dnshdr :PDNS_HDR;
  dnsqer :PDNS_QER;
  Buffer :Array [0..BUF_SIZE-1] Of Byte;
  nSocket:TSocket;
  SerAddr:TSockAddrIn;
  I      :Integer;
  nRet   :Integer;
  dwLen  :Integer;
begin
  ZeroMemory(@Result, SizeOf(TIPAddr));
  nSocket := socket(AF_INET, SOCK_DGRAM, 0);
  If nSocket = INVALID_SOCKET then  Exit;
  SetSocketIoOutTime(nSocket, 8000);
  SerAddr.sin_family        := AF_INET;
  SerAddr.sin_port          := Htons(SRV_PORT);
  SerAddr.sin_addr.s_addr   := Inet_Addr(Server);
  if SerAddr.sin_addr.s_addr = SOCKET_ERROR then Goto OnExit;
  ZeroMemory(@Buffer, BUF_SIZE);
  Randomize;
  dnshdr       := @Buffer;
  dnshdr^.id   := Random(65534);  //随机个ID
  dnshdr^.tag  := htons($0100);
  dnshdr^.numq := htons(1);
  dnshdr^.numa := 0;
  lstrcpyA(@Buffer[SizeOf(DNS_HDR) + 1], szHost);
  I           := SizeOf(DNS_HDR) + 1;
  dwLen       := 0;
  While dwLen < lstrlenA(szHost)-2 Do
  begin
    if Buffer[I + dwLen] = 0 then Break;
    If AnsiChar(Buffer[I + dwLen]) = '.' Then
    begin
      Buffer[I - 1] := dwLen;
      Inc(I, dwLen + 1);
      dwLen := 0;
    end Else
    begin
      Inc(dwLen);
    end;
  end;
  Buffer[I - 1]   := dwLen;
  dnsqer          := PDNS_QER(@Buffer[SizeOf(DNS_HDR) + 3 + lstrlenA(szHost) - 1]);
  dnsqer^.utype   := htons(1);
  dnsqer^.classes := htons(1);
  sendto(nSocket, Buffer, SizeOf(DNS_HDR) + SizeOf(DNS_QER) + lstrlenA(szHost) + 2, 0, SerAddr, SizeOf(TSockAddrIn));
  I    := SizeOf(TSockAddrIn);
  ZeroMemory(@Buffer, BUF_SIZE);
  nRet := recvfrom(nSocket, Buffer, BUF_SIZE, 0, SerAddr, I);
  if dnshdr.numa = 0 then //这里=0是不存在的域名
  begin
    Result[0] := 0;
    Result[1] := 0;
    Result[2] := 0;
    Result[3] := 0;
    Goto OnExit;
  End Else
  begin
    dwLen     := nRet - 4;
    Result[0] := Buffer[dwLen];
    Result[1] := Buffer[dwLen+1];
    Result[2] := Buffer[dwLen+2];
    Result[3] := Buffer[dwLen+3];
  end;

  OnExit :
  closesocket(nSocket);
end;


WinlogonHack Upgrade

Inject Lsass.exe

Hook LsaApLogonUserEx2
  if(IsAdmin)
    (Save/Post) PassWord
  else
    Exit Or Msg(The password is incorrect)



<p>

<a href="http://bcs.duapp.com/flandre/Blog/20140731/fda97789-d8fe-4620-a8b2-6fdec5cb8cb8.jpg"><br />

fda97789-d8fe-4620-a8b2-6fdec5cb8cb8.jpg
</p>

fedora20 安装 VirtualBox

<p>[root@localhost ~]# rpm -qa | grep kernel-devel</p><p><span style="background-color: rgb(192, 0, 0);">kernel-devel-3.11.10-301.fc20.x86_64</span></p><p>[root@localhost ~]# uname -r</p><p><span style="background-color: rgb(192, 0, 0);">3.11.10-301.fc20.x86_64</span></p><p><br/></p><p><br/><span style="background-color: rgb(196, 189, 151);">yum install gcc gcc-c++dkms</span></p><p><br/></p><p><br/></p><p>wget VirtualBox.rpm</p><p><br/></p><p>install VirtualBox.rpm</p>