tag:blogger.com,1999:blog-6697777440657372512024-03-13T19:42:10.988+08:00wye - ANGer化为触手吧,吾之Code!wyehttp://www.blogger.com/profile/16405489214934013977noreply@blogger.comBlogger61125tag:blogger.com,1999:blog-669777744065737251.post-21865350644501471392018-07-08T01:38:00.003+08:002018-07-08T01:49:02.676+08:00已忘初心
这一切应该是从我在飞天诚信被经理yzq坑了年终考评开始吧,从事业单位离开的我还曾踌躇满志努力发挥,来到飞天诚信为公司解决了那么多疑难杂症,结果考评却为了拉自己的心腹上位给我评那么低,心灰意冷的我选择了离开。后来去了快用苹果助手,良好表现次次评优,终于也架不住成天被弱鸡领导指挥和公司画饼无法兑现带来的心理落差。后来带着协议刷的技术被骗去了Yeahmobi又赶上苹果策略调整,这家广告公司刷量搞数据造假,同时总监djj(to**y),就是个满嘴谎言的垃圾,希望所有的风险都推给我,和同事说我不是这个公司的人,各方面都避免和我产生关联,入职说的话除了工资之外就没有一句靠谱的,终于忍不住被恶心走了。
回顾以前的博客,发现自己已经忘记了当初天天研究技术解决问题的快乐,现在只有被这么多公司坑骗后的苦痛,以及对将来被年龄歧视裁员的担心。现在身处大公司见识到了大公司的魄力和能人积累,现在的领导技术可以wyehttp://www.blogger.com/profile/16405489214934013977noreply@blogger.com1tag:blogger.com,1999:blog-669777744065737251.post-60842486023229079542017-02-27T23:42:00.000+08:002017-02-27T23:47:05.479+08:00废物利用老旧安卓平板流水账(三):android usb ethernet
<!--[if gte mso 9]>MicrosoftInternetExplorer402DocumentNotSpecified7.8 磅Normal0<![endif]-->
这个平板已经作为网络服务器稳定工作了一段时间了,它已经成为我另一个计划的一部分,我还给它买了个usb有线网卡,这篇讲讲使用usb有线网卡时遇到的坑。
经验教训:不要买9700!
淘宝一搜usb有线网卡,按价格排序,你眼前会出现一大堆9700芯片的辣鸡货!这个自称10/100mbps的网卡其实搞的是假的100mbps!当它插在网络上时永远都会显示100mbps full,而实际效果只有10mbps half,并且与这个网卡连接的另一端也会显示连接速度为10 mbps half。我还一度认为这是驱动的bug,还天真的为了解决驱动的bug编译ko搞了内核hook,但是!完全!没有!用! 这个东西在wyehttp://www.blogger.com/profile/16405489214934013977noreply@blogger.com0tag:blogger.com,1999:blog-669777744065737251.post-64258935323943531372016-12-14T23:59:00.001+08:002016-12-14T23:59:18.245+08:00备忘:Blogger Simple模板缩短订阅按钮用到的css
.subscribe-dropdown-arrow { display: none !important;}.subscribe { width:97px !important;}.subscribe .top{ width:97px !important; background:none !important;}.subscribe .bottom{ width:97px !important; background:none !important;}
wyehttp://www.blogger.com/profile/16405489214934013977noreply@blogger.com0tag:blogger.com,1999:blog-669777744065737251.post-10230815560065887412016-12-09T00:13:00.003+08:002016-12-09T00:17:21.764+08:00废物利用老旧安卓平板流水账(二):交叉编译shadowsocks
<!--[if gte mso 9]>MicrosoftInternetExplorer402DocumentNotSpecified7.8 磅Normal0<![endif]-->
在上一篇流水账中我已经有了个能用的ROM,然而这个android系统还是太老了,在这个系统上并不能支持最新版的shadowsocks安卓app,而旧版本的shadowsocks没有自带kcptun,不知道为什么也没法通过我手工启动的kcptun连上服务器。所以只好放弃使用app,手工编译一个ARM指令集的native shadowsocks客户端程序。
这篇包含两部分,前一部分是使用NDK交叉编译shadowsocks-libev,后一部分是使用go交叉编译shadowsocks-go。
使用NDK交叉编译shadowsocks-libev:
由于这是一次失败的尝试,同时我在写这篇文章的时候wyehttp://www.blogger.com/profile/16405489214934013977noreply@blogger.com0tag:blogger.com,1999:blog-669777744065737251.post-54666009148293466912016-12-08T00:31:00.001+08:002016-12-08T20:43:36.791+08:00废物利用老旧安卓平板流水账(一):解决ROM问题
<!--[if gte mso 9]>MicrosoftInternetExplorer402DocumentNotSpecified7.8 磅Normal0<![endif]-->
家里有个常年落灰的老旧平板,这两天把他折腾了一番重新废物利用了起来,在此记录一下遇到的问题和解决方案。
老旧平板的安卓系统也已经非常老了, 为了更新系统我从网上找了个最新(多年前)的ROM更新到机器上,然后悲剧的发现触摸时x轴镜像了,原来能用的ROM又找不回来了。
不断下载了各个不同子型号的ROM仍然没有找到合适的ROM的我,决定使用相性最好的一个ROM,并手动解决这个ROM的x轴反向像的问题。
要改ROM首先要能解包封包,这个板子是RK2918的方案,对应的解包封包工具在这个帖子有介绍。
我按照国内一个论坛的说法尝试首先尝试了修改build.prop的以下属性:wyehttp://www.blogger.com/profile/16405489214934013977noreply@blogger.com5tag:blogger.com,1999:blog-669777744065737251.post-5382136089910708982015-06-30T17:42:00.000+08:002015-06-30T17:42:59.936+08:00インモラル病棟 自动跳过H场景的解决方案
只需要在控制面板的区域选项中将日期时间格式选项选为日本即可。
wyehttp://www.blogger.com/profile/16405489214934013977noreply@blogger.com0tag:blogger.com,1999:blog-669777744065737251.post-36807910896285762052015-03-25T23:06:00.000+08:002015-03-25T23:06:20.715+08:00加(ming)特(ling)技(hang)解决Chrome安装程序出错的问题
本来想发推特算了,不过特技太长超出了推特的限制, 连发一篇博客吧……
https://dl.google.com/update2/installers/ChromeStandaloneSetup.exe
下载好了chrome浏览器安装程序双击提示未知的安装程序错误(Unknown Installer Error)咋办?
加(ming)特(ling)技(hang):
ChromeStandaloneSetup.exe /installsource clickonce /install "appguid={8A69D345-D564-463C-AFF1-A69D9E530F96}&iid={709D8A51-F327-C4C5-EB8A-4BF6B744EEAF}&lang=en&browser=2&usagestats=0&wyehttp://www.blogger.com/profile/16405489214934013977noreply@blogger.com1tag:blogger.com,1999:blog-669777744065737251.post-4807037563164747062015-03-25T22:34:00.000+08:002015-03-25T22:38:04.257+08:00编译v8引擎遇到的坑
<!--[if gte mso 9]>MicrosoftInternetExplorer402DocumentNotSpecified7.8 磅Normal0<![endif]-->
本来之前还想过要写《编译OpenSSL遇到的坑》和《编译Boost遇到的坑》的,不过这两篇文章都因为种种拖延而流产了。今天虽然兴起,但是之前编译OpenSSL和Boost时遇到的种种已经无法完整回忆,只好作罢,就写点最近接触的v8好了。
如何使用Git这种东西就不说了,直接说坑吧。
1.GYP
这东西的clone地址是:git clone https://chromium.googlesource.com/external/gyp
Clone下来之后如果你直接执行setup.py会遇到这么个错误提示:
usage: setup.py [wyehttp://www.blogger.com/profile/16405489214934013977noreply@blogger.com0tag:blogger.com,1999:blog-669777744065737251.post-51822185325856852662014-11-30T00:50:00.000+08:002015-02-05T20:42:50.164+08:00让VC编译出的静态库lib同时支持MT、MD、ML、MTd、MDd、MLd
<!--[if gte mso 9]>MicrosoftInternetExplorer402DocumentNotSpecified7.8 磅Normal0<![endif]-->
这是前一阵子用Clang折腾API库的时候获得的意外收获。
还是遵循惯例先给出方案,然后再给分析啥的:
方案很简单,用俺编写的这个小工具处理一下静态库就行啦。首先用16进制编辑工具打开编译好的lib库,查找DEFAULTLIB:”LIBC字样,应该能找到类似于/DEFAULTLIB:”LIBCMT”这样的文字,用空格覆盖掉就好啦。
上述方案对应的库名根据静态库的编译选项不同会不太一样,ML对应libc,MT对应libcmt,MD对应libcmd,DEBUG版的库名大家举一反三一下好了。
这么做还是有一定的限制的:
1. 需要确认lib库源代码中没有使用这6种编译方式中其中wyehttp://www.blogger.com/profile/16405489214934013977noreply@blogger.com0tag:blogger.com,1999:blog-669777744065737251.post-52427083370135766042014-10-14T22:56:00.000+08:002014-10-14T22:56:11.753+08:00如何从lib中提取obj
最近有这方面需求,就查了一下,网上除了某培训班的代码可以提取之外,似乎并没有多少关于从lib中提取obj方法的记载。
其实完全不需要写代码嘛……
VS自带的工具就可以帮忙嘞!
相关命令有两个:
lib /list和lib /extract
使用方法如
lib /list xx.lib
lib /extract:.\Release\abc.obj xx.lib
于是可以通过如下方法批量提取lib中的obj
lib /list xx.lib>a.txt
编辑a.txt按照lib /extract的命令格式查找替换一下另存为批处理
然后就可以批量提取啦
wyehttp://www.blogger.com/profile/16405489214934013977noreply@blogger.com0tag:blogger.com,1999:blog-669777744065737251.post-19687568408908750952014-09-08T15:34:00.001+08:002014-09-08T15:34:30.550+08:00使用phantomjs+casperjs遇到的坑
<!--[if gte mso 9]>MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0<![endif]-->
这两周帮同学搞一个网站上的在线书籍接触到了phantomjs和casperjs。casperjs大法确实不错啊,可以编排模拟网页访问操作步骤,并截取页面中的指定区域或元素的内容。不过这东西坑和bug也不少,现在把一些还有印象的东西记录一下。
1.循环
Casperjs的执行方式类似于感觉就像在写汇报,而且不支持向后跳转到之前的step,不过也不是完全没有办法循环了,网上的办法是通过递归调用来实现的,就像这样(别忘了在外面初始化一下i):
casper.someloop = function() {
this.thenwyehttp://www.blogger.com/profile/16405489214934013977noreply@blogger.com0tag:blogger.com,1999:blog-669777744065737251.post-49295463560179456162014-08-26T20:59:00.002+08:002014-08-26T20:59:49.500+08:00SEH和VEH
先说结论吧:
VEH可以在修复问题后继续执行产生异常的代码 ,SEH不行
SEH比起VEH更方便简洁直观因为VEH一旦注册handler,任何位置的任何异常都会走到handler里。
VEH比SEH触发更早,VEH如果将问题处理完毕,可以阻止SEH的触发,如果VEH认为问题没法处理好也可以继续触发SEH。
VEH可以拿来做很多事,比如说内存修改器之类的
下面是两组实验代码:
int *pb = 0;LONG CALLBACK VectoredHandler( _In_ PEXCEPTION_POINTERS ExceptionInfo ){ *pb = 1;//b = 1 wyehttp://www.blogger.com/profile/16405489214934013977noreply@blogger.com0tag:blogger.com,1999:blog-669777744065737251.post-33904442994572824152014-08-20T21:41:00.000+08:002014-08-20T21:41:36.900+08:00.net保护思路
<!--[if gte mso 9]>MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0<![endif]-->
本文是我从零开始学习.net保护一周多得出的结论,中间断续穿插了一些别的任务。
公司的.net壳已经做到了按方法加密的程度,如果想再提升,可以从两个方向着手:
1. 加强代码乱序、混淆
2. 按照DNGuard的思路搞
其实还有一点,就是修复反射漏洞,不过我不确定公司的壳有没有这个漏洞,而且这也用不上啥大动作姑且不列。两个方向中第一个方向俺没有研究,第二个方向由于DNGuard的作者很大方说的挺清楚,所以比较明朗,这里简单说一下。
简单来讲,现在稍微好点.net壳和脱壳都走到了JIT层,普通的壳无非就是hook的更深然后检查一些其它hook点是不是被脱壳机搞过了,脱壳机wyehttp://www.blogger.com/profile/16405489214934013977noreply@blogger.com0tag:blogger.com,1999:blog-669777744065737251.post-13724104556925563942014-08-06T00:16:00.001+08:002014-08-06T00:16:55.583+08:00最近boss给俺安排的任务越来越杂了
<!--[if gte mso 9]>MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0<![endif]-->
前一阵子俺还在折腾Hook,然后穿插着给一些C#代码找错,后来让俺学.net程序加壳,然后是看看某个C#程序调用C++的dll为啥出错,今天俺又在修改一个COM组件使之可以被PHP调用,我还顺便搭了个PHP开发环境,用上了久违的eclipse……
好在上述内容除了壳之外都还算常规开发的范畴内(hook在常规开发也不难看到),俺也不在乎多掌握一些编程语言和扩展组件开发方式,我比较赞成程序员不应在一个语言或者平台中固步自封的观点,接触这些可以拓宽我在程序设计与编写时的视野,这有助于俺能力的提升。
不过俺还是比较抵触壳这东西的,我确实希望有朝一日可以成为比优秀更好的安全方面的开发人员,同时,如果可能我希望我的wyehttp://www.blogger.com/profile/16405489214934013977noreply@blogger.com0tag:blogger.com,1999:blog-669777744065737251.post-86195895225841762792014-07-27T22:27:00.002+08:002014-07-27T22:27:15.788+08:00继续记录Hook遇到的坑:兼容模式
Windows的兼容模式在apphelp.dll、AcLayers.dll、AcGernel.dll Hook了一堆一堆的函数。win7采用的方法是iathook。
冲突点如下:
由于我们的实现机制,兼容模式的iathook优先于我,先将CreateFileA、CreateFileW、GetProcAddress等,覆盖指针为iatCreateFileA、iatCreateFileW、iatGetProcAddress(我忘了实际的符号叫啥了,这些名字是我瞎起的,用于区分hook前后)等。
于是我本来通过GetProcAddress获取CreateFileW的地址然后inlinehook的流程由于iat被修改,变成了通过iatGetProcAddress获取到iatCreateFileW的地址然后inlinehook。
如此一来CreateFileA的调用路径就变成了这样:wyehttp://www.blogger.com/profile/16405489214934013977noreply@blogger.com0tag:blogger.com,1999:blog-669777744065737251.post-65109396901376497122014-07-22T23:22:00.001+08:002014-07-22T23:30:58.484+08:00备忘:关于VB程序报错Out of memory
msvbvm60.dll写的很屎,有一个报错函数写死了报Out of memory,今天就遇到的情况明明是hook的伪SetFilePointer写错了,在某些情况成功操作但是函数返回失败,结果msvbvm60.dll搞了个Out of memory,真够坑爹的。
所以,VB6程序报错Out of memory等于报错Error,除了说明发生了错误之外什么都不能说明 ,memory什么的就当它是个屁好了。
wyehttp://www.blogger.com/profile/16405489214934013977noreply@blogger.com0tag:blogger.com,1999:blog-669777744065737251.post-38526247141255555452014-07-22T20:43:00.000+08:002014-07-22T20:43:03.961+08:00不用任何API获取本可执行文件的ImageBase(dll hModule)
一句话:extern "C" IMAGE_DOS_HEADER __ImageBase;
这两天读msvcrt源码所得,以后dll获取自身的hmodule再也不用VitualQuery了
wyehttp://www.blogger.com/profile/16405489214934013977noreply@blogger.com0tag:blogger.com,1999:blog-669777744065737251.post-90838990290646174292014-07-20T14:43:00.000+08:002014-07-22T20:25:29.164+08:00VS2013写的dll被内存加载失败原因一例
<!--[if gte mso 9]>MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0<![endif]-->
在公司写的某dll终于完成了,和公司的壳一同使用时,公司的一种壳可以稳定的从内存加载使用我写的dll,而另一种时好时坏(大多数情况都无 法正常加载),在我来这里工作之前,这两个壳在内存加载他们使用低版本VS编译出的dll时都可以正常工作,我因为使用了一些C++11语法特性,实在不 想做降版这蛋疼事,调试分析了这其中的原因。
经过一番调试,终于把前因后果捋顺了:
· 壳->DLLEntryPoint:走到_DllMainCRTStartup
· _DllMainCRTStartup->_CRT_INIT:初始化CRT环境
· wyehttp://www.blogger.com/profile/16405489214934013977noreply@blogger.com0tag:blogger.com,1999:blog-669777744065737251.post-23460687513522864312014-07-02T20:55:00.000+08:002014-07-02T22:47:45.362+08:00Hook CloseHandle时遇到程序退出时卡死的问题原因及解决方案
实际上这个问题我很久之前就遇到过了,在Hook CloseHandle函数的情况下,点击关闭按钮后程序要等一段时间才能够关闭,当初只当是虚拟机性能差造成的延迟,直到前几天我在新公司写Hook代码在实机上测试才发现问题并不是我之前认为的那样。
问题现象:
在Hook CloseHandle函数的情况下,点击关闭按钮后要等一段时间进程才能够退出。
问题原因:
在程序退出的过程中,全局对象的生存期已经结束,系统在进行进一步收尾工作时调用了CloseHanle,这时在伪函数内访问了已经销毁的全局对象,导致异常产生。
解决方案:
动态申请在伪函数内需要访问到的全局对象,将对象保存在堆内。
此时对象保存在堆内而非栈内,在程序退出全局变量生存期结束时不会调用析构函数。同时,虽然用于保存该对象地址的指针/引用虽然也超过生存期,但是由于没有被复写,也不存在析构函数,所以可以访问wyehttp://www.blogger.com/profile/16405489214934013977noreply@blogger.com0tag:blogger.com,1999:blog-669777744065737251.post-83577001242383339552013-11-15T21:47:00.000+08:002013-11-15T21:47:23.614+08:00使用Greasemonkey脚本彻底摆脱BT工厂下载弹窗今天有空,所以更新一下多年没有动过的博客。
事情是这样的……
正是因为今天有空,所以我为了陶冶情操,文化交流网站‘BT工厂’看了看最近更新的新的文化交流内容……
然后呢,我一如既往的点开了很多很多的文化交流种子下载页……
但是把这些下载页的种子全都下载下来是一件很痛苦的事情!
来看一下代码:
<form action="../down.php" method="post">
<input type="hidden" value="torrent" id="type" name="type" />
<input type="hidden" value="#######" id="id" name="id" />
<input type="hidden" value="#######" id="name" name="name" /&wyehttp://www.blogger.com/profile/16405489214934013977noreply@blogger.com0tag:blogger.com,1999:blog-669777744065737251.post-8864588528975249282013-01-05T14:26:00.000+08:002013-01-05T14:26:06.846+08:00hosts法屏蔽迅雷广告好久没更新博客了呢,这学期各种忙最近时间终于稍微宽裕了些
今天把迅雷的网络访问嗅探之后整理了一下,适合非VIP用户使用,对VIP用户可能会产生不可预期的后果。
刚总结出来,还没有经过长期测试,也有可能会导致某些功能不能使用。
嘛,凑合着用吧~
如果不出意外,我也懒得重新总结了
#xunlei0.0.0.0 game.xl7.xunlei.com0.0.0.0 questions.xl7.xunlei.com0.0.0.0 img.plugin.xl7.xunlei.com0.0.0.0 xmlconf.client.xunlei.com0.0.0.0 xl7xml.client.xunlei.com0.0.0.0 media.info.client.xunlei.com0.0.0.0 proxy.nm.xunlei.com0.0.0.0 wyehttp://www.blogger.com/profile/16405489214934013977noreply@blogger.com0tag:blogger.com,1999:blog-669777744065737251.post-78134208531708542932011-07-06T19:45:00.000+08:002011-07-06T19:45:09.847+08:00最终又用回了HSSTor每回都要弄网桥,我已经受不了了……
于是就换了HSS
老牌免费VPN,ISP对电驴的封锁也解决了……
广告问题改了个Hosts文件就解决了……
不过我不会感谢它!
前一段时间外国网盘集体被封锁,起初还以为特殊时期反政府组织又用网盘传播什么消息了呢
今天为了下载这货,抓包了它一下官方网站的下载器。
不抓不知道,官网的下载器都是从国外网盘来下载HSS安装包到本地的!
4shared、mediafire什么的各种网盘都有……
太阳啊,一个HSS用了国外网盘的部分地址,GFW图个方便就把这些网盘全杀了……
人家还有好多#$&^%&的东西等着从国外网盘下载呢……
哎╮(╯▽╰)╭,不多说了,这下翻个墙应该就方便多了……
btw,Hotspot Shield的图标和COMODO真般配……wyehttp://www.blogger.com/profile/16405489214934013977noreply@blogger.com0tag:blogger.com,1999:blog-669777744065737251.post-74705534455746499002011-06-14T00:26:00.000+08:002011-06-14T00:26:31.546+08:00继续尝试翻墙手段……GFW表示区区IPV6已经阻止不了它了……借助IPV6上blogger已经成为一条死路……
翻墙工具手头还是有一两个的,一段时间内当有翻墙需求的时候我都是在用wj。
但总是不放心,感觉很有可能会被窃取账户信息什么的,也就查个资料什么的还成……
其他各种翻墙工具也下了不少,但都没有达到我想要的效果……
(其中就有以某鸟为契机试用了一次SSH,不知为什么我输入地址都被转到它的博客去了,然后就再也没用过这种方式……)
于是,绕了一圈,我又回到了Tor这里……
Tor是我接触过的第一个翻墙工具呐~ 当年它的慢速我现在还记忆犹新……
这次使用感觉还可以,速度比起当年(很久很久以前,具体的我忘了)有所改观,仍然慢但可接受了……
置于安全性嘛,个人不负责任地认为:应该会比起岛民出于政治目的而开发的wj应该会更好一些吧……
不过也听说过某篇维基泄密上发布的秘密文件是因为使用Tor网络而泄露出去的哟,wyehttp://www.blogger.com/profile/16405489214934013977noreply@blogger.com0tag:blogger.com,1999:blog-669777744065737251.post-60530971413281671112011-02-12T08:27:00.001+08:002011-02-12T22:40:38.675+08:00嘿嘿,原来可以既然能发帖了,那我可能要考虑是否恢复这blog了……
之前也试图IPV6翻墙发帖,一点New Post就被stick,还以为是hosts文件改动不够全呢。
看来是我这网络访问ipv6太慢的原因……
那么,我最近在搞啥?
看这里:
http://hi.baidu.com/resfleam/home
http://0rz.co/blog/447574.htm
http://tora.to/blog/447574.htm wyehttp://www.blogger.com/profile/16405489214934013977noreply@blogger.com1tag:blogger.com,1999:blog-669777744065737251.post-79003353539372824492010-03-16T08:03:00.001+08:002010-03-16T08:03:30.967+08:00手机翻墙发帖测试用Blot浏览器在手机上翻墙,速度还是不错的,但是无法显示中文,而且我还有些担心隐私安全问题。
恩
也不知道我这些中国字发出来没有呢?wyehttp://www.blogger.com/profile/16405489214934013977noreply@blogger.com1