存档
解密加上引号,因为并不是真正的解密。 现在很多网站不让你看js源码,就想办法变形,最后再document.write出来。 显然不管它怎么变形,最后总要调用document.write,我们直接在document.write的实现处, 用native调试来下个断点,不就可以读出来了? 找到document.write函数: C:\>syminfo /S E:\symbol C:\WINDOWS\ie7\mshtml.dll | grep ::write 7DDA72FB[+ 0] ?writeln@CDocument@@QAGJPAUtagSAFEARRAY@@@Z public:long __stdcall CDocument::writeln(struct tagSAFEARRAY *) 7DCE0741[+ 0] ?write@CDocument@@QAGJPAUtagSAFEARRAY@@@Z public:long __stdcall CDocument::write(struct tagSAFEARRAY *) 显然,直接在这两个函数下断点就可以了。 下完需要读一个VARIANT结构,里面是一个VT_I8的safearray,需要了解safearray的结构,就不赘述了。 因为还有更好的办法! 用firebug直接看就是了。原来也不清楚,原来firebug看时,一个javascript段里调用了document.write之后,就会在dom树里紧跟着看到另一个<script></script>的段。所以,直接用firebug翻看就行了。真是简单啊。 翻看后可以找个工具把代码格式化一下。 有个软件叫sourceformatx,好像已经有四年没有更新了。找了一下crack的文章,说这个软件破解不好会直接破坏系统,因此没有人破解。由于四年过了,现在已经可以搜到完美破解版,但是不是真的完美呢?要是有一点不完美,系统就要挂了,怕怕。所以先不用了,要用也在vmware里用。 thank creese@newsmth.
222.122.249.5:8080 非常快非常好的代理,如今挂了。不能连了。 google了一把这个IP,一堆的记录啊天啦。 不过现在终于倒了。 也好,搜这个IP能找到很多不错的代理网站。 用代理这个关键字反而找不到这么好的。呵呵,让SEO见鬼去吧。
看了看wrk的代码,发现一个函数会调用ZwCreateFile打开注册表的文件,这个函数就是CmpOpenHiveFiles 这个函数会打开两个注册表文件,master为不带后辍的,secondary为带后辍的。 system32\config\system和software就是这样被加载的。 查找过程,先找SAM,这个词不常见,grep一下找到一个配置表: HIVE_LIST_ENTRY CmpMachineHiveList[] = { { L"HARDWARE", L"MACHINE\\", NULL, HIVE_VOLATILE , 0 , NULL, FALSE, FALSE, FALSE}, { L"SECURITY", L"MACHINE\\", NULL, 0 , 0 , NULL, FALSE, FALSE, FALSE}, { L"SOFTWARE", L"MACHINE\\", NULL, 0 , 0 , NULL, FALSE, FALSE, FALSE}, { L"SYSTEM", L"MACHINE\\", NULL, 0 [...]
dbghelp有个功能,那就是MiniDumpWithUnloadedModules, 当os维护了已经unload的dll的列表时,它会在minidump文件中存入unloaded modules的信息。 只可惜的是,msdn中明说了,dbghelp 5.1并不支持这个标志。 看了一下winxpsp2自带的dbghelp.dll,恰好是这个版本的。 这一个标志是很重要的,因为某些BUG,经查恰好运行到一个非法的地址时Crash, 而这个非法的地址怎么看都像是原来有一个dll恰好加载在这里,但如今 这个dll已经被FreeLibrary了。如果有了这个unload modules的信息, 那么这个BUG就很容易找出来。如果没有的话,就麻烦了,因为程序代码 中都是com指针,虚表调来调处的根本不知道调用处正常情况应当调用的是哪个dll。 既然这个标志重要,自然应当把它启用,但winxp sp2恰恰不支持,如果为了这一个功能 就打包一个体积不小的dbghelp.dll的话,也划不来。 因此,想到一点: 何不自己把unloaded modules的信息,记载下来跟.dmp文件一起上报呢? 如是开始研究,先写了一个很小的程序来实现产生minidump的功能,然后用ollydbg来调试, 看dbghelp.dll是如何拿到unloaded modules的信息的。 程序虽小,五脏俱全,代码如下: int Filter(_EXCEPTION_POINTERS * source, _EXCEPTION_POINTERS * dest) { *dest->ContextRecord = *source->ContextRecord; *dest->ExceptionRecord = *source->ExceptionRecord; return EXCEPTION_EXECUTE_HANDLER; } void Doxx(EXCEPTION_POINTERS * p) { HANDLE ho = CreateFile(L"oo.dmp", GENERIC_ALL, 0, NULL, CREATE_ALWAYS, 0, [...]