TLS回调函数以及反调试简单使用 0x00 TLS介绍 TLS(Thread Local Storage,线程局部储存),主要用于给线程独立的传值,由于线程不拥有进程的资源,所以几个同一进程的几个线程需要独立赋值时的需要通过TLS技术.每个线程创建时都会分配一个index所以,这个索引index是全局变量,线程根据index来获取其他线程传过来的返回值.TLS有一个特点,就是它通常在程序EP前就要运行,所以起始TLS才是个程序真正的开始.利用这一特点,可以用来进行的程序的反调试. 0x01 T
背景 在Koa系框架(如EggJS)中进行微信支付开发时,遇到一个问题:微信支付平台会发送一个回调请求,通知支付订单的处理结果.该请求传入的参数是xml格式,而Koa中间件koa-bodyparser对xml格式的请求参数没有做处理,这就需要我们在程序中自行处理 通用处理逻辑 网上通用的处理逻辑,都是类似如下的代码: const bb = require('bluebird'); const xml = await bb.fromCallback(cb => { let data = ''; t