未找到

未发布 轻松审计代码安全性,Windows 10有妙招
by Harriet666 keys 分享 1503998911618
如果你是软件开发人员,又希望自己开发的软件安全性高一点,那么当前的Windows 10企业内部预览版(10.0.16253)中就有一个功能可以做到。
 
它的位置在“设置 – > Windows Defender – > Windows Defender安全中心 – >应用程序和浏览器控制 – >漏洞保护设置”中,你可以为整个系统或特定程序启用自定义漏洞利用设置。其中有很多不同的保护特性并且许多都可以在审计模式下打开。在审计模式下,它不是在出现情况时终止进程,而是将事件写入事件日志。对于管理员,这就意味着其会允许软件继续运行,同时能够使我们意识到这一情况是何时发生的。对于希望通过了解这些情况以此来改进产品的人来说,它其实是提供了一个启用安全功能的附加好处,即无需重新编译(在某些情况下),就能告诉你确切的程序代码在当它在运行时遇到问题的位置。在版本10.0.16253中,可以进行审计的保护特性包括:
 
任意代码保护 - 防止非图像支持的执行代码和代码页修改(例如VirtualAlloc / VirtualProtect创建/修改的代码)
阻止低完整性图像
阻止远程图像
阻止不受信任的字体
代码完整性守护者
禁用Win32k系统调用
不允许子进程
导出地址过滤 - 将功能修补到另一个功能的一个常见方法中的一个步骤
导入地址过滤 - 将功能修补到另一个功能的一个常见方法中的一个步骤
模拟执行
验证API调用(CallerCheck)
验证图像依赖完整性
验证堆栈完整性
 
要充分利用此功能,我们需要安装Windows Performance Toolkit。它是Windows SDK安装程序的安装选项之一。当您启用了您感兴趣的设置后,打开管理命令提示符并浏览到Windows Performance Toolkit目录(通常为Program Files(x86) Windows Kits  {Version}  Windows Performance Toolkit)。您可以通过运行以下两个命令(在替换文件名所需的任何路径之后)启动并开始收集上述漏洞保护设置的跟踪以及解析堆栈跟踪所需的数据:
xperf - “PROC_THREAD + LOADER”-f“wdeg_klogger.etl”
 
xperf -start“WDEG” - “Microsoft-Windows-Security-Mitigations:0xFFFFFFFFFFFFFF:0xFF:'stack'”-f“wdeg_unmerged.etl”
在您运行任何想要收集的方案之后,您可以停止跟踪并将数据与以下内容合并(再次替换文件名所需的任何路径):
xperf -stop -stop“WDEG”-d“wdeg_merged.etl”
 
然后,您可以删除创建的前两个文件,因为此时您将拥有第三个所需的所有数据。您可以在Windows Performance Analyzer(WPA)中打开生成的etl文件,并查看数据。
 
您可以使用wpaPreset文件扩展名保存它,在WPA中加载数据,转到我的预设(在WPA的较新版本中的文件 – >窗口 – >我的存在),选择导入,浏览到保存预设的任何地方,选择它,并双击它以显示视图。另外,您还需要加载符号,以充分利用这一点。您可以在WPA中在File-> Configure Symbols下设置符号; 您需要将其指向msdl.microsoft.com/download/symbols上的Microsoft符号服务器以及您的符号服务器(或您没有符号服务器设置的符号文件的位置)。您可以在加载跟踪时自动配置WPA加载符号,但也可以通过转到文件 – >加载符号来手动加载符号。一旦完成,您将能够轻松地查看堆栈跟踪。它就会像下面这样:
 
以下是在创建上述过程中我为x64控制台应用程序编译的示例代码:
#include #include using namespace std;void* CreateCodeInVirtualMemory(BOOL writable)
{ BYTE code[3] = { 0x33, 0xc0, 0xc3 }; LPVOID result = VirtualAlloc(NULL, sizeof(code), MEM_COMMIT | MEM_RESERVE, writable ? PAGE_EXECUTE_READWRITE : PAGE_READWRITE); if (result)
{
  memcpy(result, code, sizeof(code));
} else cout << "VirtualAllocEx failed with error " << GetLastError() << endl; return result;
}void CreateCodeInVirtualMemoryAndExecute(BOOL useWritableMemory)
{ LPTHREAD_START_ROUTINE addr = (LPTHREAD_START_ROUTINE)CreateCodeInVirtualMemory(useWritableMemory); if (addr)
{  DWORD result = addr(NULL);
  cout << "Code at 0x" << hex << (void*)addr << " returned " << result << endl;
} else cout << "NULL address was not executed" << endl;
}void ExecuteIllegalMemory()
{
CreateCodeInVirtualMemoryAndExecute(FALSE);
} 
void PrintOptions()
{
cout << "Enter one of the following options:" << endl;
cout << "1 - Execute Memory Not Marked As Executable" << endl;
cout << "2 - Create Code in Virtual Memory" << endl;
cout << "3 - Create Code in Virtual Memory and Execute" << endl;
cout << "0 - Exit" << endl;
 
}void DecisionLoop()
{ while (true)
{  int selection;
  PrintOptions();
  cin >> selection;  switch (selection)
  {   case 0:    return;   case 1:
    ExecuteIllegalMemory();    break;   case 2:
    CreateCodeInVirtualMemory(TRUE);    break;   case 3:
    CreateCodeInVirtualMemoryAndExecute(TRUE);    break;   default:
    cout << "Invalid input" << endl;
  }
}
}int main()
{
DecisionLoop(); return 0;
}
 
在这里我没有去对它的应用做更多的介绍,但我相信我的抛砖引玉一定能够让更多的人对这一功能产生兴趣。
对于在事件查看器中的应用程序和服务日志中找到的大多数内容,您也可以以相同的方式完成此类操作——单击特定日志的属性,它将具有Provider-Name-Parts / LogName形式的名称。您只需要在xperf命令中使用“Provider-Name-Parts”部分即可。
未发布 .Net文档图像处理工具包GdPicture.NET发布v14,提供最先进的PDF和文档成像技术
by Harriet666 keys 分享 1500539281166
GdPicture.NET 14.0是2017年初的第一个主要版本。像过去13年一样,GdPicture.NET团队力求提供最先进的PDF和文档成像技术。
 
此版本所有主要功能都得到了改进:PDF、TWAIN采集、压缩、文档渲染、文档转换、条形码识别、字符识别和文档清理。此外还包括其他流行的文档文件格式新功能或改进功能,包括Office Open Xml相关功能和使用Wang注释的TIFF。现在也支持RTF文档格式。
 
DocuVieware是HTML5文档管理的主要扩展,还包括一个新的注释评论管理单元,支持所有浏览器中的HTTPS TWAIN扫描,并大大地提升了性能。现在提供了通过任何流行的Web技术(如Angular、ASP.NET Core、ASP.NET、Java、JavaScript、Node.js和PHP)使用DocuVieware的所有必需资源和功能。
 
【GdPicture.NET 14.0点击下载>>>】
 
新的功能和改进

新的文档查看器引擎

新版本附带了一个全新的渲染引擎,可以非常快速地展示大尺寸位图,并以多页视图模式显示多页文档。对于所有支持的框架,它已经被加入到了WinForms版本的GdViewer控件中。

新文件转换器类

处理快速文档转换的新类已添加到工具包中。它允许通过处理转换的每个方面(颜色、元数据、注释、图像、文本...),将任何支持的文档格式(通过GdPicture)快速转换为流行格式,如PDF和TIFF。(需要GdPicture Ultimate版本)。

支持新的文档格式

现在支持RTF查看和转换。渲染和显示、获取缩略图、浏览、搜索、转换为PDF或位图。使用多视图模式、文本搜索、文本选择和提取等查看GdViewer和DocuVieware中的rtf文档。

字符识别和可搜索PDF(PDF-OCR)

该OCR引擎已经改进,以减少内存的使用,提高稳定性和准确度(尤其是低分辨率的位图)。
GdPicture.NET 14.0可搜索PDF(PDF-OCR)已经改进。创建更快,生成的文件更小。
字符识别引擎已经优化,使用较少的内存,并且PDF页面识别方法得到了改进。

长期归档(PDF/A)

PDF/A是长期存档电子文件的ISO标准。感谢GdPicture.NET PDF/A功能,可以创建标准化的电子文档,可以在任何系统上随时随地地展示,同时可以使用兼容的查看器打开。
GdPicture.NET 14.0能够生成PDF/A的任何格式:PDF/A-1a、PDF/A-1b、PDF/A-2a、PDF/A-2b、PDF/A-2u、PDF/A-3a、PDF/A-3b和PDF/A-3u。

附加PDF支持功能

增强了PDF的最重要部分,以改善解析、写入、渲染、内存使用和速度。当使用Unicode内容编写PDF时,GdPicture.NET 14.0附带了一种新的字体生成引擎,支持TrueType字体的子集。该软件现在支持用于Unicode文本绘图的OpenType字体。新的文本提取算法构建更接近自然阅读顺序的文本。
GdPicture.NET现在读取复杂的PDF最多可以提高5倍速度,并且更快地编写pdf文本。
其他新功能和增强功能包括:
  • 支持传递函数到PDF光栅化器。
  • 新的CCITT滤波器解码器。
  • 支持将JPEG图像添加到PDF中,无需对图像进行解码/重新编码。
  • 改进了具有链接文档的PDF包。
  • 改进页面规范化支持。
  • 提高大文件的处理速度(和内存使用量)。
  • 打印:减小了一些复杂文档生成的卷轴大小。
  • 打印:提高生成页面的质量,特别是虚拟打印机。

Office打开Xml Word处理文档

GdPicture.NET 14.0包含了很多改进的渲染引擎,并提供对表格内容和图片的支持。渲染引擎快了80%。

条形码引擎

GdPicture.NET条形码读取引擎使用错误校正机制。在GdPicture.NET 14.0中引入了改进的纠错机制,以提高引擎的速度和精度。条形码引擎使用查找器模式来定位文档中的代码。
当将GdPicture.NET 14.0引擎与GdPicture.NET 12.0引擎进行比较时,可以获得以下数据:
  • 1D条码阅读引擎
    提高10%的条形码识别
    提高44%的补丁代码识别
    快14%
  • 数据矩阵条码阅读引擎
    提高15%的条形码识别
  • PDF 417阅读引擎
    提高14%的条形码识别
    快40%
  • QR码阅读引擎
    快18%
    提高24%的条形码识别

文件成像过滤器

  • GdPicture.NET页面自动校正精度有所改进。
  • 空白页检测引擎的准确性大大提高,更好地排序空页。
  • 引入了一个新的颜色压缩过滤器,将特定颜色放入多个上下文中:退出表单等。

注释评论

GdPicture.NET 14.0新的评论功能可以帮助集成商解决文档审查的难题。
基于GdPicture.NET的应用程序可以存储由GdPicture.NET(超过100个)支持的所有格式的注释,包括PDF和TIFF。有了这个新功能,这些应用程序可以提供协作文档审阅,参与者可以在审阅过程中共享信息。

支持Wang注释

Wang注释是一种老旧的注释格式。ORPALIS开发了将这些旧式文件转换为最先进的注释PDF或TIFF的工具。
该工具可用作github上的开源项目。请参阅:https://github.com/Orpalis/WangTagReading

改进图像编码解码器

  • GdPicture.NET图像压缩速度得到提高:
    JPEG2000解码速度高达25%
    在64位系统上压缩JPEG图像的速度大约10-15%
    使用预测变量压缩PNG图像的速度提高了30%,达到50%
  • 改进RAW图像加载速度,并增加了对80多个新相机的支持
  • 支持在BMP文件中读取和写入alpha通道

杂项

  • 通过Twain扫描时,使用存储器传输模式增加了对压缩位图的支持
  • 提高了Twain内存传输速度
  • 改进1D条码刻录机编码
  • 参考指南大大改进,并将不断更新

DocuVieware全球改进

受益于GdPicture.NET 14.0的最新改进,DocuVieware 3.0提高了性能、内存占用以及用户体验。
格式支持也得到了改进,现在可以将Microsoft Office OpenXML文档导出到向量PDF。
未发布 大数据时代:九个大数据应用领域
by chenjunji123456 keys 分享 1471574280968
未发布 [转] Node.js开发入门—套接字(socket)编程
by tries keys 分享 1487059334292

Node.js的net模块提供了socket编程接口,方便我们利用较为底层的套接字接口来实现应用协议。这次我们看一个简单的回显服务器示例,包括服务端和客户端的代码。

使用JavaScript也可以进行套接字编程,哈哈,这酸爽!

代码

分服务器和客户端两部分来说吧。

echoServer代码分析

echoServer.js:

var net = require("net");

// server is an instance of net.Server
// sock is an instance of net.Socket
var server = net.createServer(function(sock){
  console.log('client connected, address -  ', sock.remoteAddress, ' port - ', sock.remotePort);
  sock.setEncoding('utf8');
  sock.on('data', function(data){
    console.log('got data from client - ', data);
    sock.write(data);
  });

  sock.on('end', function(){
    console.log('client disconnected');
  });

  sock.on('error', function(err){
    console.log('socket error - ', err);
  });
});

server.maxConnections = 10;
server.listen(7, function(){
  console.log('echo server bound at port - 7');
});

net模块api在这里:https://nodejs.org/api/net.html

我使用net.createServer来创建一个服务器实例,这个方法的返回值是一个net.Server实例,net.Server提供了listen方法,让我们监听到某个端口上来接受客户端连接,同时还提供了一些属性,比如maxConnections可以设置服务器的并发连接数上限(当服务器的连接数超过这个值时,后续连接就会被拒掉),还有其它的,看文档吧:https://nodejs.org/api/net.html#net_class_net_server

net.Server还提供了一些事件,比如error、connection等。当有客户端连接被接受时,会发射connection事件,这个事件带一个net.Socket对象作为参数,可以在回调函数里访问这个net.Socket实例来与客户端交互。我在代码里,给createServer方法传入了一个callback来处理connection事件,实际上也可以略作修改,通过监听connection事件的方法处理客户端连接。新代码如下:

var net = require("net");

var server = net.createServer();

server.on('connection', function(sock){
  console.log('client connected, address -  ', sock.remoteAddress, ' port - ', sock.remotePort);
  sock.setEncoding('utf8');
  sock.on('data', function(data){
    console.log('got data from client - ', data);
    sock.write(data);
  });

  sock.on('end', function(){
    console.log('client disconnected');
  });

  sock.on('error', function(err){
    console.log('socket error - ', err);
  });
});

server.maxConnections = 10;
server.listen(7, function(){
  console.log('echo server bound at port - 7');
});

效果是一样的。

net.Socket对象有一些方法,比如write可以写数据。还有一些事件,比如error、end、data等,看代码就能明白用法。还有一些属性,比如remoteAddress、remotePort。

我处理了data事件,data事件有一个参数,代表读到的数据。我在回调中直接使用net.Socket.write把数据原封不动发还给客户端。这是echo的一种实现。还有一种更方便的实现,就是调用net.Socket的pipe方法,Node.js net模块文档里提供的echoServer就是用的pipe,去看看吧。

echoClient代码分析

echoClient.js:

var net = require("net");
var readline = require('readline');

console.log('type "exit" or "quit" to quit.');

// sock is an instance of net.Socket
var sock = net.connect({port: 7}, function(){
  console.log('server connected');
  sock.setEncoding('utf8');
  sock.write('Hello Echo Server\r\n');
});

sock.on('data', function(data){
  console.log('got data from server - ', data);
});

sock.on('end', function(){
  console.log('client disconnected');
});

sock.on('error', function(err){
  console.log('socket error - ', err);
});

sock.on('close', function(){
  console.log('echo client was closed');
  process.exit(0);
});

var rl = readline.createInterface({
  input: process.stdin
});

function quitEcho(){
  rl.close();
  sock.end();
  console.log('quit echo client');
}

rl.on('line', function(cmd){
  if(cmd.indexOf('quit') == 0 || cmd.indexOf('exit') == 0){
    quitEcho();
  }else{
    sock.write(cmd + '\r\n');
  }
});

rl.on('SIGINT', quitEcho);

客户端代码稍长了一些。因为我想让echo更像echo,就调用readline模块来从标准输入读取数据来发送给客户端。readline的文档在这里:https://nodejs.org/api/readline.html。正如它的名字,Readline可以让你一行一行的读取一个流。比较常见的就是读取标准输入流。Readline有一些事件,我们用到的“line”事件,在一行数据就绪时会发射,带一个代表数据的参数。我监听line事件,在回调中调用net.Socket的write方法写入数据。当你在控制台输入“quit”或“exit”时,调用quitEcho退出。

net.connect方法可以连接到指定的服务器,它的原型如下:

net.connect(options[, connectionListener])

第一个参数是Object,用于指定和连接相关的选项,比如服务端的host、port等,如果不指定host,就默认用localhost作为服务端主机名。我在示例中只指定了端口。

net.connect返回net.Socket对象,一旦拿到了Socket实例,就可以用net.Socket来为所欲为了。我监听了data事件来接收服务端发挥的数据,监听close事件来退出进程。net.Socket的具体API,参考https://nodejs.org/api/net.html#net_class_net_socket

运行示例

评书里有句话,说时迟那时快,嗯哈,可以运行了。先执行“node echoServer.js”,然后执行“node echoClient.js”,就可以在echoClient的控制台界面输入一些内容了。效果如下图:

echoServerClientpng


其它文章:

未发布 小程序的三个更新,会给企业带来巨大改变!
by 霁夜茶135 keys 分享 1498113610890
小程序的每一次功能开放都能够值得企业深思。了解小程序每一个新开放的功能,能够让企业小程序发展更快一步。了解小程序新功能,使用小程序新功能,是每一个企业做好小程序都必须做好的工作。
未发布 wemall app商城源码中ScrollView中嵌套ListView主要代码
by wemallshop keys JavaScript 1479883660380
未发布 LEADTOOLS HTML5 Medical Viewer(云PACS)本地部署指南
by Harriet666 keys 分享 1517902071278

Leadtools 19总套包下载>>>

相关部署文件所在位置:C:\LEADTOOLS 19\Shortcuts\Medical Viewers\.NET Class Libraries\HTML5 Medical Viewer\Medical Web Viewer
部署步骤:
image
 
1.数据库以及PACS服务部署。
点击“01 - Run This First To Config 32-bit Demos”图标,进入数据库部署页面
image
image
 
提示保存成功后会进入PACS服务配置页面
image
配置完成后关闭即可
 
2.WEB服务相关部署。
2.1点击“02 - Run This Second to Run the Medical Web Viewer 32-bit Demo”,弹出配置窗口后点击“Fix”按钮
image
 
2.2点击Next按钮,下个界面继续点击Next
image
 
2.3确保在最后一个界面是Success提示,可以点击Test按钮对服务进行测试,确认无误后关闭该窗口,回到上一个窗口
image
 
2.4点击“Run Viewer”按钮即可在浏览器进行浏览,用户名和密码即为刚才在数据库设置时填写的字符。
image
 
2.5部署完成后可以在系统IIS管理器中看到相关的服务
image
6
未发布 对于企业而言,渗透测试为什么是必要的?
by zoujiajun33 keys 分享 1490167692325
企业在安全上投入了巨大的精力和资金,但有往往会产生这样的感受:当基本的软硬件设施配置好之后,安全防卫水平就到了一个相对的瓶颈,再加大投入并不能明显提高安全水平。实际上,这种“安全玻璃天花板”在很多行业和企业中都存在,伴随着安全行业的发展和管理人员安全意识的提高,以渗透测试为代表的“安全服务”正在得到更多的认可。
未发布 「21金维他」X 轻互动朋友圈广告,传授“逆龄”营销法则
by wx_16005 keys 分享 1610014776291
未发布 小程序的出现,对餐饮企业的改变!
by 霁夜茶135 keys 分享 1499164082958
餐饮行业竞争激烈,企业想要进一步发展就离不开小程序。

 近期热门 - 点击最多
  1. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  2. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  3. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  4. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  5. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法
  6. Springboot+Gradle+Mysql+Jpa最简单实例教程
  7. SpringBoot+Spring6入门指南: 使用命令行快速搭建restful web api模板
  8. 如何通过 winax 的 ActiveXObject 或 Excel.Application 往 excel 中插入一张图片
  9. node.js用activex/com+自动化读写excel时查询接口、参数的调试方法
  10. TypeScript定义数字范围类型即仅包含【小时:分钟】的时间类型,每天指定时间点执行任务

  全端社区 - 最新回复
  1. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  2. Windows与Mac通过git ssh和rsync实现文件共享互传
  3. Windows与Mac通过git ssh和scp实现文件共享互传
  4. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  5. 使用PubSub-JS时ReactNative在后台运行一段时间唤醒后,组件无法scribe到publish的事件,typescript实现一个事件订阅发布组件
  6. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  7. ReactNative获取Android/iOS的MAC/IP地址: react-native-device-info模块的安装与使用
  8. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  9. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法
  10. Springboot+Gradle+Mysql+Jpa最简单实例教程

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA