提交 2732cf89 编写于 作者: P pc-ls 提交者: ninecents

【高效】 添加 yeahmao/hexConvert 标签,将x64dbg汇编转换为字符串和字节数组,提高编码速度

上级 40b49b1e
......@@ -75,3 +75,8 @@ npm run build -adapter=[chrome|edge|utools|firefox|web]
| ARM/HEX | `互转` |×|
| Bcrypt | `加密`,`验证` |√|
| IP网络计算器 | `子网掩码各个进制表示换算,IP地址进制表示换算` |√|
## 功能列表-yeahmao
| 功能 | 说明 |离线使用|
|--------------|-------------------------------------------------------------------------------------------------------------------------------|---|
| 字节转码 | `16进制字节流`, `美化后`, `字符串格式`, `字节数组格式`,`` |√|
\ No newline at end of file
......@@ -21,6 +21,7 @@ const category = [
{'name': 'check'},
{'name': 'generate'},
{'name': 'other'},
{'name': 'yeahmao'},
]
const tool = [
......@@ -64,6 +65,9 @@ const tool = [
{'name': 'armConverter', 'cat': ['conversion']},
{'name': 'bcrypt', 'cat': ['encryption','check']},
{'name': 'ipcalc', 'cat': ['generate']},
// yeahmao
{'name': 'hexConvert', 'cat': ['yeahmao']},
]
// 工具类功能配置
......
{
"input": "Input",
"input": "assemble",
"output": "Output",
"uppercase": "Uppercase",
}
......@@ -39,6 +39,7 @@
"category_check": "Validator",
"category_generate": "Generate",
"category_other": "Other",
"category_yeahmao": "yeahmao",
// tool
"tool_hash": "Hash",
"tool_encrypt": "Encrypt & Decrypt",
......@@ -73,6 +74,7 @@
"tool_armConverter": "ARM/HEX",
"tool_bcrypt": "Bcrypt",
"tool_ipcalc": "Ipcalc",
"tool_hexConvert": "hexConvert",
// other
"css_main_category_item_style": "padding: 0 10px",
"editor_line_wrapping": "Line Wrapping",
......
......@@ -39,6 +39,7 @@
"category_check": "校验",
"category_generate": "生成",
"category_other": "其他",
"category_yeahmao": "夜猫逐梦",
// 工具
"tool_hash": "哈希(hash)",
"tool_encrypt": "加密/解密",
......@@ -73,6 +74,7 @@
"tool_armConverter": "ARM/HEX",
"tool_bcrypt": "Bcrypt",
"tool_ipcalc": "IP网络计算器",
"tool_hexConvert": "字节转换",
// 其他
"css_main_category_item_style": "padding: 0 20px",
"editor_line_wrapping": "自动换行",
......
......@@ -161,6 +161,10 @@ const routes = [
{
path: '/tool/ipcalc',
component: r => require(['./views/tool/ipcalc.vue'], r)
},
{
path: '/yeahmao/hexConvert',
component: r => require(['./views/yeahmao/hexConvert.vue'], r)
}
]
......
......@@ -57,7 +57,11 @@ export default {
watch: {
currentTool(name) {
model.setCurrentTool(name)
this.$router.push('/tool/' + name)
if (name == 'hexConvert') {
this.$router.push('/yeahmao/' + name)
} else {
this.$router.push('/tool/' + name)
}
},
},
created() {
......
<template>
<heightResize ignore :append="['.page-option-block']" @resize="resize">
<autoHeightTextarea v-model="current.input" :height="inputHeight" :placeholder="$t('hexString_input')"/>
<option-block class="page-option-block">
<FormItem>
<ButtonGroup>
<Button type="primary" @click="handle()">Convert</Button>
<!-- <Button type="primary" @click="handle('str')">Hex -> String</Button> -->
</ButtonGroup>
</FormItem>
<FormItem>
<Checkbox v-model="current.isUppercase">{{ $t('hexString_uppercase') }}</Checkbox>
</FormItem>
</option-block>
<span>美化的内容&nbsp;&nbsp;&nbsp;&nbsp;</span><input class="input_width_100" type="text" v-model="current.output_beautiful">
<br>
<span>字符串格式&nbsp;&nbsp;&nbsp;&nbsp;</span><input class="input_width_100" type="text" v-model="current.output_str">
<br>
<span>字节数组格式:</span><input class="input_width_100" type="text" v-model="current.output_bytes">
<autoHeightTextarea :value="current.output" :height="outputHeight" :placeholder="$t('hexString_output')"/>
</heightResize>
</template>
<script>
import heightResize from "../tool/components/heightResize";
import autoHeightTextarea from "../tool/components/autoHeightTextarea";
export default {
components: {
heightResize,
autoHeightTextarea
},
created() {
this.$initToolData('input')
},
methods: {
handle() {
console.log('enter...')
var bytes = ''
if (this.current.input) {
var lines = this.current.input.split('\n');
lines.forEach(line => {
console.log(line)
var items = line.split('|')
if (items.length != 4) {
return
}
bytes += items[1]
// items.forEach(item => {
// console.log(item)
// })
})
}
console.log('leave...', bytes)
this.current.output = bytes
//
this.current.output_beautiful = bytes.replaceAll(':', '').replaceAll(' ', '')
if (this.current.output_beautiful.length % 2 == 1) {
alert('数据有误,请检查后再尝试')
return;
}
var lst = []
for (var i = 0; i < this.current.output_beautiful.length / 2; ++i) {
lst.push(this.current.output_beautiful.slice(2*i, 2*i + 2))
}
this.current.output_str = ''
lst.forEach(item => {
this.current.output_str += '\\x' + item;
})
this.current.output_bytes = ''
lst.forEach(item => {
this.current.output_bytes += '0x' + item + ', ';
})
},
resize(height) {
this.inputHeight = Math.min(320, Math.ceil(height / 2))
// this.outputHeight = height - this.inputHeight
this.outputHeight = 180
}
},
data() {
return {
current: {
input: "",
isUppercase: false,
output_beautiful: "", // 一行,全字节内容,美化的内容
output_str: "", // 字符串格式
output_bytes: "", // 字节数组格式
output: "",
operation: ""
},
inputHeight: 100,
outputHeight: 100
}
},
}
</script>
<style scoped>
.input_width_100 {
width: 80%;
margin: 8px 0;
}
</style>
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册