滴水逆向联盟

标题: [推荐] 写了个小工具,分享一下,含代码 [打印本页]

作者: dishui001    时间: 2014-5-23 09:38
标题: [推荐] 写了个小工具,分享一下,含代码

  1. void CMFCApplication2Dlg::OnBnClickedButtonDtohex()
  2. {
  3.         UpdateData(TRUE);
  4.         int num = atoi(m_sInput);
  5.         m_sInput.Format("0x%x",num);
  6.         UpdateData(FALSE);
  7. }


  8. void CMFCApplication2Dlg::OnBnClickedButtonHextod()
  9. {
  10.         UpdateData(TRUE);
  11.         m_sInput.MakeLower();

  12.         char sz[50]={0};
  13.         strcpy(sz,(LPCSTR)m_sInput);
  14.         char* p = sz;
  15.         int nlen = strlen(p);
  16.         WORD dw = * (WORD*)p;

  17.         char* p1="0x";
  18.         WORD dw1 = *(WORD*)p1;
  19.         if (dw==dw1)
  20.         {
  21.                 p+=2;
  22.                 nlen-=2;
  23.         }

  24.         int data=0;
  25.         int base=1;
  26.         char *pend = p+nlen-1;
  27.         while (pend>=p)
  28.         {
  29.                 if (*pend>='a')
  30.                 {
  31.                         data+= ( (*pend-'a'+10) *base);
  32.                 }
  33.                 else
  34.                 {
  35.                         data+= ( (*pend-'0') *base);
  36.                 }
  37.                 base*=16;
  38.                 pend--;
  39.         }

  40.         m_sInput.Format("%d",data);
  41.         UpdateData(FALSE);
  42. }


  43. void CMFCApplication2Dlg::OnBnClickedButtonDtob()
  44. {
  45.         UpdateData(TRUE);
  46.         int num = atoi(m_sInput);

  47.         char sz[100]={0};
  48.         char sz2[100]={0};
  49.         int i=0;
  50.         while (num>0)
  51.         {
  52.                 int n = num%2;
  53.                 //TRACE("%d",n);
  54.                 if (n==1)
  55.                 {
  56.                         sz='1';
  57.                 }
  58.                 else
  59.                 {
  60.                         sz='0';
  61.                 }
  62.                 i++;
  63.                 num/=2;
  64.         }
  65.         i--;

  66.         for (int j=0;j<=i;j++)
  67.         {
  68.                 sz2[j]=sz[i-j];
  69.         }

  70.         m_sInput = sz2;
  71.         UpdateData(FALSE);
  72. }


  73. void CMFCApplication2Dlg::OnBnClickedButtonBtod()
  74. {
  75.         UpdateData(TRUE);
  76.         m_sInput.MakeLower();

  77.         char sz[100]={0};
  78.         strcpy(sz,(LPCSTR)m_sInput);
  79.         char* p = sz;
  80.         int nlen = strlen(p);
  81.         WORD dw = * (WORD*)p;

  82.         int data=0;
  83.         int base=1;
  84.         char *pend = p+nlen-1;
  85.         while (pend>=p)
  86.         {
  87.                 data+= ( (*pend-'0') *base);
  88.                 base*=2;
  89.                 pend--;
  90.         }

  91.         m_sInput.Format("%d",data);
  92.         UpdateData(FALSE);
  93. }


  94. void CMFCApplication2Dlg::OnBnClickedButtonRgbtoh()
  95. {
  96.         UpdateData(TRUE);
  97.         m_sInput.MakeLower();
  98.         char rgb[3]={0};
  99.         char sz[50]={0};
  100.         strcpy(sz,(LPCSTR)m_sInput);
  101.         char* p = sz;
  102.         int nlen = strlen(p);

  103.         int i = 0;
  104.         char *tokenPtr=strtok(sz,",");
  105.         while(tokenPtr!=NULL)
  106.         {
  107.                 //cout<<tokenPtr<<'\n';
  108.                 rgb = atoi(tokenPtr);
  109.                 i++;
  110.                 tokenPtr=strtok(NULL,",");
  111.         }
  112.         if (i!=3)
  113.         {
  114.                 AfxMessageBox("请输入如:12,255,241");
  115.                 return;
  116.         }

  117.         //int aa = RGB(1,2,3);
  118.         
  119.         m_sInput.Format("0x%06x",RGB(rgb[0],rgb[1],rgb[2]));
  120.         UpdateData(FALSE);
  121. }


  122. void CMFCApplication2Dlg::OnBnClickedButtonHtorgb()
  123. {
  124.         // TODO: 在此添加控件通知处理程序代码

  125.         UpdateData(TRUE);
  126.         m_sInput.MakeLower();

  127.         char sz[50]={0};
  128.         strcpy(sz,(LPCSTR)m_sInput);
  129.         char* p = sz;
  130.         int nlen = strlen(p);
  131.         WORD dw = * (WORD*)p;

  132.         char* p1="0x";
  133.         WORD dw1 = *(WORD*)p1;
  134.         if (dw==dw1)
  135.         {
  136.                 p+=2;
  137.                 nlen-=2;
  138.         }

  139.         int data=0;
  140.         int base=1;
  141.         char *pend = p+nlen-1;
  142.         while (pend>=p)
  143.         {
  144.                 if (*pend>='a')
  145.                 {
  146.                         data+= ( (*pend-'a'+10) *base);
  147.                 }
  148.                 else
  149.                 {
  150.                         data+= ( (*pend-'0') *base);
  151.                 }
  152.                 base*=16;
  153.                 pend--;
  154.         }

  155.         //m_sInput.Format("%d",data);
  156.         byte*pRgb =(byte*)&data;
  157.         
  158.         m_sInput.Format("%d,%d,%d",pRgb[0],pRgb[1],pRgb[2]);
  159.         UpdateData(FALSE);
  160. }


  161. void CMFCApplication2Dlg::OnBnClickedButtonAsciitod()
  162. {
  163.         UpdateData(TRUE);
  164.         LPCSTR p=(LPCSTR)m_sInput;
  165.         m_sInput.Format("%d",*p);
  166.         UpdateData(FALSE);
  167. }


  168. void CMFCApplication2Dlg::OnBnClickedButtonDtoasciit()
  169. {
  170.         UpdateData(TRUE);
  171.         int num = atoi(m_sInput);
  172.         m_sInput.Format("%c",num);
  173.         UpdateData(FALSE);
  174. }


  175. void CMFCApplication2Dlg::OnBnClickedButtonDwtoip()
  176. {
  177.         UpdateData(TRUE);
  178.         DWORD dw = atol(m_sInput);
  179.         byte ary_by[4]={0};
  180.         memcpy(ary_by,&dw,sizeof(byte)*4);

  181.         m_sInput.Format("%d.%d.%d.%d",ary_by[0],ary_by[1],ary_by[2],ary_by[3]);

  182.         UpdateData(FALSE);
  183. }


  184. void CMFCApplication2Dlg::OnBnClickedButtonIptodw()
  185. {
  186.         UpdateData(TRUE);
  187.         char sz[50]={0};
  188.         strcpy(sz,(LPCSTR)m_sInput);
  189.         char* p = sz;
  190.         int i = 0;
  191.         char *tokenPtr=strtok(p,".");
  192.         byte ary_by[4]={0};
  193.         while(tokenPtr!=NULL)
  194.         {
  195.                 ary_by = atoi(tokenPtr);
  196.                 i++;
  197.                 tokenPtr=strtok(NULL,".");
  198.         }

  199.         if (i!=4)
  200.         {
  201.                 AfxMessageBox("请输入如:192.168.0.68");
  202.                 return;
  203.         }

  204.         DWORD dw;
  205.         memcpy(&dw,ary_by,sizeof(ary_by)*4);
  206.         m_sInput.Format("%d",dw);
  207.         UpdateData(FALSE);

  208. }
复制代码


1386734991_949369.jpg (21.64 KB, 下载次数: 567)

1386734991_949369.jpg





欢迎光临 滴水逆向联盟 (http://dtdebug.com/) Powered by Discuz! X3.2