吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2200|回复: 1
上一主题 下一主题
收起左侧

[Python 转载] 【笔记】汇编引擎-Keystone实用手册

[复制链接]
跳转到指定楼层
楼主
我已经蓝屏 发表于 2021-7-21 14:01 回帖奖励

前言

本文就是写写Keystone咋用的
不涉及原理层面

地址

官方网站
https://www.keystone-engine.org/
Github
https://github.com/keystone-engine/keystone
我的博客(欢迎来踩)
https://kdajv.com/2021/07/21/capstoneengine/

介绍

Keystone是一个轻量级的多平台多架构的汇编框架,可以提供不少独特功能:

  • 支持多框架:Arm, Arm64 (AArch64/Armv8), Ethereum Virtual Machine, Hexagon, Mips, PowerPC, Sparc, SystemZ & X86 (包括 16/32/64bit)。
  • 干净/简单/轻量级/直观的API,同时不依赖任何架构。
  • 以C/C++实现,可在众多语言里使用:Java、Masm、C#、PowerShell、Perl、Python、NodeJS、Ruby、Go、Rust、Haskell、VB6 和 OCaml。
  • 原生支持Windows和*nix系统(以下系统已确认支持:Mac OSX, Linux, *BSD, Solaris)
  • 线程安全的设计。
  • 开源,具有双重许可证

使用

编译ShellCode(X86)

Input

from keystone import *
import sys

Shellcode_instruction = '''
xor eax, eax
push    eax
push    0x68732f2f
push    0x6e69622f
mov ebx, esp
push    eax
push    ebx
mov ecx, esp
mov al, 0xb
int 0x80
'''

KS = Ks(KS_ARCH_X86, KS_MODE_64)
code, count = KS.asm(Shellcode_instruction)
print(f"Source\t{code}")
print(f"Bytes\t{b''.join(map(lambda x: x.to_bytes(1, sys.byteorder), code))}")
print(f"Count\t{count}")

Output

Source  [49, 192, 80, 104, 47, 47, 115, 104, 104, 47, 98, 105, 110, 137, 227, 80, 83, 137, 225, 176, 11, 205, 128]
Bytes   b'1\xc0Ph//shh/bin\x89\xe3PS\x89\xe1\xb0\x0b\xcd\x80'
Count   11

编译ShellCode(X86-64)

Input

from keystone import *
import sys

Shellcode_instruction = '''
xor rdx, rdx
mov rbx, 0x68732f6e69622f2f
shr rbx, 0x8
push    rbx
mov rdi, rsp
push    rax
push    rdi
mov rsi, rsp
mov al, 0x3b
syscall
'''

KS = Ks(KS_ARCH_X86, KS_MODE_64)
code, count = KS.asm(Shellcode_instruction)
print(f"Source\t{code}")
print(f"Bytes\t{b''.join(map(lambda x: x.to_bytes(1, sys.byteorder), code))}")
print(f"Count\t{count}")

Output

Source  [72, 49, 210, 72, 187, 47, 47, 98, 105, 110, 47, 115, 104, 72, 193, 235, 8, 83, 72, 137, 231, 80, 87, 72, 137, 230, 176, 59, 15, 5]
Bytes   b'H1\xd2H\xbb//bin/shH\xc1\xeb\x08SH\x89\xe7PWH\x89\xe6\xb0;\x0f\x05'
Count   10

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
NYSECBao 发表于 2023-4-4 10:54
感谢,最近需要shellcode的生成
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-5 11:29

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表