API

黑客常用WinAPI函数整理

作者: xmj

为了对黑客常用的Windows API有个更全面的了解以及方便日后使用API方法的查询,特将这些常用的API按照7大分类进行整理如下,希望对大家的学习有所帮助。

一、进程

创建进程:

CreateProcess("C:\\windows\\notepad.exe",0,0,0,0,0,0,0,&si,&pi);

WinExec("notepad",SW_SHOW);

ShellExecute(0,"open","notepad","c:\\a.txt","",SW_SHOW);

ShellExecuteEx(&sei);

遍历进程:

CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

Process32First(hsnap,&pe32);

Process32Next(hsnap,&pe32);

终止进程:

ExitProcess(0);

TerminateProcess(hProc,0);

打开进程:

OpenProcess(PROCESS_ALL_ACCESS,0,pid);\

获取进程ID:

如何绕过Android P非公开API限制?

作者:刘洪凯

首先需要强调的是,为什么要突破限制,因为安卓中许多技术需求需要使用系统隐藏 API 完成。目前大量的安卓应用都会通过反射或 JNI 方式使用到系统隐藏 API,这其中包括几乎全部插件化框架,典型的是对 AssetManager 中隐藏 API 的使用。开发新的项目也不可避免地会使用到系统隐藏 API。Android P 的这一限制会导致许多安卓应用以及开源框架在 Android P 上运行出现崩溃。因此突破此限制有很重要的意义。

另外,目前的几个方法均已在 Android P(Preview 1) 的手机上测试通过,均为有效。只要将来放出的 Android P 源码依然使用此限制原理,那么这些方法就保证有效。

最后,文中的几种方法均不会产生副作用。

一、概要

本文基于对Android P(Preview 1)的源码分析,实现了三种绕过对调用隐藏API限制的方法,有效性均已得到验证,能够成功调用系统隐藏API。

二、限制原理

实时渲染中常用的几种 Rendering Path

[导读] Rendering Path 其实指的就是渲染场景中光照的方式。由于场景中的光源可能很多,甚至是动态的光源。所以怎么在速度和效果上达到一个最好的结果确实很困难。以当今的显卡发展为契机,人们才衍生出了这么多的 Rendering Path 来处理各种光照。

1. rendering path 的技术基础

在介绍各种光照渲染方式之前,首先必须介绍一下现代的图形渲染管线。这是下面提到的几种 Rendering Path 的技术基础。

实时渲染中常用的几种 Rendering Path

Khronos Group发布Vulkan API 1.1版本和SPIR-V 1.3规范

高性能跨平台图形接口Vulkan是用以取代OpenGL的新一代跨平台图形API,是继DX12之后的希望之星,Vulkan是开源的图形API,它承诺通过给予开发者访问硬件底层的能力而大幅提升3D应用的性能。Khronos Group宣布发布最新的Vulkan API 1.1版本,新版本同时增加了16-bit数据支持,新的保护性内容和子集操作功能,并且同时发布了SPIR-V编译器1.3规范。

1.1版本扩展了Vulkan的核心功能,融入了开发者要求的性能,例如子集操作,同时也融合了各种经验证的Vulkan 1.0扩展。Khronos将同时开源发布完整版本Vulkan 1.1 一致性测试,Imagination也将推出通过Vulkan 1.1 一致性测试的驱动。更多关于Vulkan 1.1规范及相关测试和工具的信息,请浏览Khronos Vulkan 资源页面 。

“通过不断增强的开发者工具、严谨的一致性测试和公开Vulkan生态系统论坛,Khronos在不断实现其目标,创建一个完整的、充满活力的Vulkan 生态系统,”ARM 杰出工程师兼Vulkan工作组主席Tom Olson讲到。“Vulkan 1.1 是对优化产业需求的响应,并展示了我们不断推出由开发者需求带动的功能扩展的承诺”。

深度学习框架的评估与比较

人工智能无疑是计算机世界的前沿领域,而深度学习无疑又是人工智能的研究热点,那么现在都有哪些开源的深度学习工具,他们各自的优缺点又是什么呢?zer0n和bamos在GitHub上发表了一篇文章,对Caffe、CNTK、TensorFlow、Theano和Torch等深度学习工具从网络、模型能力、接口、部署、性能、架构、生态系统、跨平台等方面做了比较。

网络和模型能力

Caffe深度学习框架的评估与比较可能是第一个主流的工业级深度学习工具,它开始于2013年底,具有出色的卷积神经网络实现。在计算机视觉领域Caffe依然是最流行的工具包,它有很多扩展,但是由于一些遗留的架构问题,它对递归网络和语言建模的支持很差。此外,在Caffe中图层需要使用C++定义,而网络则使用Protobuf定义。

Google 推送 Android 8.1 开发者预览版,新增神经网络 API

Google 今天推送了 Android 8.1 开发者预览版 ,这次更新包含一个神经网络 API,能够为设备上的机器学习操作提供硬件加速支持。Google 称,一般的应用不会调用这个 API,它是专门为机器学习库和框架准备的。

针对轻量级的 Android Go,Android 8.1 更新也包含了对这一系列设备的内存优化,帮助开发者在低运存设备上分发应用时有效拆分 APK,让 Google Play Store 提供更符合硬件规格的应用版本。这次更新也对系统的通知机制进行了调整,在一些低运存设备上可以取消某些通知调用,而且应用每秒钟只可以提交一次推送。

Google 推送 Android 8.1 开发者预览版,新增神经网络 API

Android 8.1 开发者预览版还新增了共享内存 API,可以让 app 分配共享内存,更快读取到共享数据。除此之外,这次更新还为 Autofill 进行了升级,改善秘钥管理和其他 Autofill 服务的使用体验。

Vulkan API图形应用接口介绍

2016年2月16日,Khronos Group发布了Vulkan API的首个正式版本。从此,数字图形技术产业诞生了一个真正意义上能与OpenGL、Direct3D分庭抗礼的全新图形接口项目。 而2016年4月,Google在第二个Android N的开发预览版中正式加入了Vulkan的支持,什么是Vulkan?它的技术优势何在?本文通过维基百科英文版的Vulkan API介绍页面(中文版维基介绍仅一句话)的主要部分进行翻译,并简单介绍Vulkan的技术特点和优势。

什么是Vulkan

Vulkan最早是2015年由Khronos Group发布的一个低负载、多平台3D图形和运算API接口,当时被称为下一代OpenGL项目[glNext],但在这一名字发布后项目就被中止。

Vulkan针对高性能的实时3D应用,如跨平台的各类3D游戏和交互软件,并提供更好的性能和更低的CPU占用率[类似Mantle和DirectX12],而且在多核CPU协同负载运行更加优秀。

Vulkan的特点

Vulkan的目的是全面优于OpenGL等老的API。提供更低的运行开销、更直接的GPU控制,和较低的CPU使用率。它的优点包括:

减少了驱动的开销,降低CPU的运行负担。

好的API都有哪些特点?你能做到几点

作者丨 Erik Dietrich
译者丨黑色巧克力

好的API是怎样的,应该具备哪些特点,作者对此进行了详细说明,并把API比作产品,主张编写API时从用户的角度换位思考。

如果用户通过他们自己的代码与你的代码进行交互,那么你将需要构建一个API。因此,理解好的API特性是至关重要的。那么什么是好的API呢?

“API”一词似乎是对软件开发人员的一种Rorschach Test。Web开发人员将API视为REST端点和wsdl。相比之下,桌面开发人员可能认为API是由来自其他组织的开发人员编写的“代码库”。人们编写像驱动程序这样的低级代码是为了提供操作系统调用的入口。

API提供了一种更通用的思维方式,我个人喜欢下面“技术术语”的定义。

API是一组命令、函数、协议和对象,程序员可以用它们来开发软件或与外部系统进行交互。它为开发人员提供了执行通用操作的标准命令,这样他们就不必从头开始编写代码了。

API定义了其他程序员如何与软件进行交互。因此,我提到的每一角色都有自己的正确答案,但只是一小部分。当你写代码的时候,想想调用这段代码的用户。如果该用户想通过自己的代码与你的代码进行交互,那么你将需要构建一个API。这方便于你公司的其他开发人员,甚至你的团队使用你的代码。

Android7.0 对于开发者来说的35条重要新功能

说完Android7.1 对开发者来说的重要更新《Android7.1 有哪些新功能?开发者必看!》,接下来说说Android7.0 ,Android7.0 正式发布已有一段时间,并且已有数款机器支持,对用户和开发者都有重大功能的更新,当然,如果开发者充分利用这些新功能,用户自然而然的就能体验到Android7.0带来的新体验,本文重点介绍面向开发者的一些新功能:

1.支持多窗口

在android 7.0中,我们介绍了在支持多窗口平台上的一个多任务处理的新功能。
现在,用户可以一次在屏幕上打开两个应用。

在手机和平板上运行7.0,用户可以并排运行两个应用,或者一个应用位于另一个应用之上在分屏模式的时候。 用户可以通过拖动两个应用之间的分隔线来调整app大小。

在android TV上的设备,app可以将自身置于画中画模式。当用户浏览或者与其他app交互的时候,允许它们继续显示内容。

尤其是在平板上和大屏的设备上,多窗口支持为你提供新的吸引用户的方式。你甚至能够让你的应用进行拖放,用户可以方便的把内容拖到你的应用,或者从中拖出内容,这是一个非常好的增强用户体验的方式。

一月底的时候我在巴黎的ISART Digital(视频游戏和3D动画学校)参加了一个座谈讨论会:“新一代图形API座谈会:关于早期的Vulkan”。这次会议是由来自Unity的Christophe Riccio组织和主持的,这次会议的主题是关于Khronos Group新一代图形与计算API:Vulkan。

这次座谈会的嘉宾有来自独立软件供应商(ISV)的,独立硬件供应商(IHV)的,以及不同应用开发平台人员,他们有非常丰富的经验,从现代渲染算法到API实现以及驱动实现:

• Sébastien Lagarde (现任Unity渲染研究总监,以前曾任职于EA Frostbite)
• Julien Ignace (现任Unity R&D渲染程序员,以前曾任职于Quantic Dream)

同步内容
--电子创新网--
粤ICP备12070055号