Tag: 程序集

如何设置将运行可执行文件的默认应用程序

我正在使用汇编程序来获取汇编代码,并在二进制文件中生成机器代码。 另一方面,我开发了一个解释器来读取生成的机器码并对其进行解释。 我做这样的事情: myas foo.asm -o out myint out ( myas是我的汇编器应用程序, myint是解释器应用程序,都是nodejs应用程序) 有没有办法设置在可执行文件中运行可执行文件的程序? 而不是做myint out我想做./out (运行它作为可执行文件)。 如果我有一个可执行文件,我想在node上运行,我把它放在第一行: #!env/node 。 我如何设置myint命令来运行文件?

我应该使用哪些Linux系统调用来读取stdin中的原始字符?

我试图将我的stdrepl库stdrepl到FASM的学习目的。 我知道GNU readline库已经做了我想做的事情,但是我想学习如何在汇编中编写非平凡的程序。 在node.js中,我可以通过编写来轻松创build一个tty: var stdin = process.stdin; stdin.setEncoding("utf8"); stdin.setRawMode(true); stdin.resume(); 我如何在纯assembly中达到相同的结果。 我尝试从一个循环中读取stdin中的一个字节,如下所示,但是在按下某个键之后,它不会立即返回字节: oct db ? mov eax, 3 xor ebx, ebx mov ecx, oct mov edx, 1 请注意, oct的数据定义不是循环的一部分,所以请不要为此而伤害我。 我知道如何构build一个汇编程序。

node.js代码保护 – 如何使node.js部署只能在V8汇编器中恢复

假设由于某些原因,我想要一个健壮的node.js代码保护,也就是强制使用javascript源代码的node.js部署完全可以通过v8汇编语言进行分析,这使得难以/几乎不可能重build原始的源代码。 换句话说,如果有人假想地以某种未经授权的方式获取了node.js程序(即,假设有问题的node.js程序应该保留在服务器上,而不是直接分发给客户端)服务器是从客户端违规等保证的,但假设服务器不是100%信任,如云服务器,不能100%肯定没有人因为某种原因真的想要这样做),那该代码将只包含V8汇编程序,不包含任何原始的js源代码。 我的意思是不会被简化,缩小,encryption,或者“源代码仍然隐藏在一个string中”,而不是简单的js源代码,只是“优化的汇编程序”为了完整的源代码,源代码将被删除,而不是包含在这个node.js实例中 – 没有encryption,没有缩小 – 只是不存在,句点。 任何性能损失(如果适用的话)在这种情况下都不是一个问题,只有源js是不可恢复的,而不是通过对整个硬件特定的优化V8程序集的冗长乏味。 首先想到的想法是以某种方式迫使V8优化所有的node.js源js代码到某个“特定硬件”的汇编程序(然而“硬件”会在某种稀薄的虚拟机中),然后以某种方式删除JIT持续运行的源代码(如果可能的话),并依靠这个优化的汇编程序。 然后,精简虚拟机将不包含任何源代码的引用,并将继续仅使用生成的V8汇编程序运行该程序。 在这种情况下,我不太确定如何去做。 也许会更喜欢Linux上可以使用的东西,但是如果只能在Windows上使用的话 – 也会考虑它。