这个东西也是在看雪上看到的,不失为字符串加密的一个好办法,除了常规的加密方法,这个东西基于源码的加密倒是也还蛮不错的。
并且每个字符串可以进行不同的处理,其实原理也比较简单,直接看生成的代码就知道什么意思了。
这个东西也是在看雪上看到的,不失为字符串加密的一个好办法,除了常规的加密方法,这个东西基于源码的加密倒是也还蛮不错的。
并且每个字符串可以进行不同的处理,其实原理也比较简单,直接看生成的代码就知道什么意思了。
今天偶尔打开一个64bit的ida数据库的时候提示什么加载插件失败。而问题的关键是自己并没有这几个64位的插件,只有32位的。其实问题也很容易就解决掉了,代码都是自己的,所以直接编译一个64位的插件就可以了。
1.配置管理器中新建一个配置,名称可以随便设置,只要能区分就可以了。
复制设置选择当前的解决方案配置。
其实安装Visual studio2012的一个主要原因就是原生态的驱动开发支持,但是却发现一件很蛋疼的事情。自带的模板创建的项目没办法编译,提示如下的错误:
出错的代码是如下的几行:
#ifdef SMP_ID
#define VER_SAMPLE_IDENTIFIER_STR SMP_ID
#endif
#ifndef VER_SAMPLE_IDENTIFIER
#define VER_SAMPLE_IDENTIFIER "SAMPLE_IDENTIFIER"
#endif
#ifdef VER_SAMPLE_IDENTIFIER_STR
resname RCDATA
{
VER_SAMPLE_IDENTIFIER,
VER_SAMPLE_IDENTIFIER_STR
}
#endif
问题就是上面描述的那样“fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt”,本来以为这个情况毕节特殊,后来搜索了一下却发现出现这个问题的大有人在。当然解决方案上面也提到了就是安装Visual Studio2010 sp1补丁。猛击这个链接去下载补丁安装程序:http://www.microsoft.com/zh-cn/download/details.aspx?id=23691
今天从看雪学院下载的安装镜像,其实这个东西好久之前就看到了,但是却一直没下载。先说下那个图标,我也感觉是像一个窗户被拧了一下。蛋疼的图标啊。今天在笔记本上装这个东西,由于没有带电源适配器差点电池没电了还没装完。好在比较幸运,最后还剩了14%的电量。
对于开源我并没有什么太高深的理解,只是这两天的事情给我的一些启发而已。在这里简单的表述一下,首先要明确的第一件事情是开源不代表免费,也不代表你拥有代码的全部处置权。这里我不想对于对待的所有的权利进行说明,也不想讨论权利的问题。只是从开源代码的生命周期来看。
其实自从去年开始处理IDA的各种插件开始,接触到很多非常不错的插件,但是很多的插件都是停留在5.0-5.5的状态,并且很多的插件没有提供源代码。像这种插件就只能任由他死去。而对于另外一些开放源代码的插件则可以通过简单的sdk的修正和一些简单的修复就可以重新编译出来支持IDA Pro 6.x以上的版本。而这一些使得代码能够有更长远的生命,也能够让更多的人用到这个东西。于是在无形中代码就变得更加长命。而由于多年以前代码的托管并不是十分方便,于是很多的代码并没有托管到第三方的开源代码服务器上,只能下载到压缩包。
偶然看到的这么个东西,话说这个活动很久了。看了代码果然不一般啊,不一般。
/*
+
+
+
+
[ >i>n[t
*/ #include
/*2w0,1m2,]_r>i>=>(['0n1'0)1;
*/int/**/main(int/**/n,char**m){FILE*p,*q;int A,k,a,r,i/*
#uinndcelfu_dseti/_*/;char*d="P%" "d\n%d\40%d"/**/
"\n%d\n\00wb+",b[1024],y[]="yuriyurarararayuruyuri*daijiken**akkari~n**"
"/y*u*k/riinrarararayuruy9uriyu3riyurar_aBrMaPrOaWy^?"
"*]/f]`;hvroai+b+i>++b++>l[rb";int/**/u;for(i=0;i<101;i++)y[i*2]^="~hktrvg~dmG*eoa+%squ#l2"
":(wn\"1l))v?wM353{/Y;lgcGp`vedllwudvOK`cct~[|ju {stkjalor(stwvne\"gt\"yogYURUYURI"[
i]^y[i*2+1]^4;/*!*/p=(n>1&&(m[1][0]-'-'||m[1][1] !='\0'))?fopen(m[1],y+298):stdin;
/*y/riynrt~(^w^)],]c+h+a+r+*+*[n>)+{>f+oy++>u>>+r >+u+++y>--u---r>++i+++" < )< ;[>-m-.>a-.-i.++n.>[(w)*/!q/**/)
return+printf("Can " "not\x20open\40%s\40" "" "for\40%sing\n",m[!p?1:2],!p?/*
o=82]5< <+(+3+1+&.(+ m +-+1.)<)<|<|.6>4>-+(> m- &-1.9-2-)-|-|.28>-w-?-m.:>([28+
*/"read":"writ");for ( a=k=u= 0;y[u]; u=2 +u){y[k++ ]=y[u];}if((a=fread(b,1,1024/*
,mY/R*Y"R*/,p/*U*/)/* R*/ )>/*U{ */ 2&& b/*Y*/[0]/*U*/=='P' &&4==/*"y*r/y)r\}
*/sscanf(b,d,&k,& A,& i, &r)&& ! (k-6&&k -5)&&r==255){u=A;if(n>3){/*
]&<1<6< ?3> +:+ .1>3+++ . -m-) -;.u+=++.1<0< <; f>1,i>>1,r);u = k-5?8:4;k=3;}else
/*]>*/{(u)=/*{ p> >u >t>-]s >++(.yryr*/+( n+14>17)?8/4:8*5/
4;}for(r=i=0 ; ;){u*=6;u+= (n>3?1:0);if (y[u]&01)fputc(/*
h.a r -(-).)8+<1. >;+i.(< )< <)+{+i.f>([180*/1*
(r),q);if(y[u ]&16)k=A;if (y[u]&2)k--;if(i/*
("^w^NAMORI; { I*/==a/*" )*/){/**/i=a=(u)*11
&255;if(1&&0>= (a= fread(b,1,1024,p))&&
")]i>(w)-;} { /i-f-(-m--M1-0.)< {"
[ 8]==59/* */ )break;i=0;}r=b[i++]
;u+=(/**>> *..*&*^&%%$^**/+8&*
(y+u))?(10- r?4:2):(y[u] &4)?(k?2:4):2;u=y[u/*
49;7i\(w)/;} y}ru\=*ri[ ,mc]o;n}trientuu ren (
*/]-(int)'`';} fclose( p);k= +fclose( q);
/*] < *.na/m*o{ri{ d;^w^;} }^_^}}
" */ return k- -1+ /*\' '-`*/
( -/*}/ */0x01 ); {;{ }}
; /*^w^*/ ;}