吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5711|回复: 9
收起左侧

[其他原创] 【原创开源】破文生成器中,汇编代码高亮处理的代码

 关闭 [复制链接]
网络骑士 发表于 2012-6-8 21:08
本帖最后由 网络骑士 于 2012-6-8 21:12 编辑

因为最近有个印度佬问我相关的问题,打算把代码给他参考参考,但是便宜阿三不如先便宜自己人啊。

而且考虑到可能大家以后在写编辑器之类的程序时会用到相关的技术, 所以决定先在这里公开这部分的源代码。

其实也没啥特别的,只是收集汇编指令中要用到的符号和指令等关键字倒是很花时间。

以下是我整理的分类,其他汇编语法相关的项目中也可以借用的。
const
  // 符号...
  Symbols: array [0 .. 23] of String = ('#', ', '(', ')', '*', ',', '.', '/',
    ':', ';', '[', ']', '{', '}', '<', '>', '-', '=', '+', '''', '@','|','\','^');
  //寄存器
  Registers: array [0 .. 38] of String = ('flat','stdcall','casemap',
  'none','dup','proto','local','invoke',
  'eax','ax','ah','al','ebx','bh','bl','bx',
  'ecx','cx','ch','cl','edx','dx','dh','dl',
  'esi','si','edi','di','ebp','bp','esp',
  'sp','carry','overflow','parity','sign','zero',
  'true','false');
  //操作符
  ReservedWords: array [0..132] of string = ('db','dw','dd','dq','mov','movsx','movzx',
    'xchg','push','pusha','pop','popa','in','out','xlat',
    'lea','lds','les','lfs','lgs','lss','lahf','sahf','pushf','pushfd',
    'popf','popfd','add','sub','adc','sbb','inc','dec','mul','div','imul',
    'idiv','cbw','cwd','cwde','cdq','neg','daa','das','aaa','aas','aam',
    'aad','and','or','xor','not','shl','sal','rol','ror','rcl','rcr',
    'shld','shrd','movs','movsb','movsw','movsd','cmps','cmpsb','cmpsw','cmpsd',
    'scas','scasb','scasw','scasd','lods','lodsb','lodsw','lodsd','stos','stosb',
    'stosw','stosd','ins','insb','insw','insd','outs','outsb','outsw','outsd',
    'ret','retn','retf','int','into','iret','iretd','set','clc','stc','cmc','cld',
    'std','cli','sti','hlt','wait','esc','lock','nop','bt','btc','btr','bts','bsf',
    'bsr','bound','enter','leave','lar','lsl','lgdt','lidt','sgdt','sidt','ltr',
    'str','lmsw','smsw','lldt','sldt','arpl','clts','verr','verw');
  //破解中常用的要高亮
  HighLight: array[0..42] of String = (
    'jmp','jc','jnc','jz','je','jnz','jne','js','jns','jo','jno','jp','jpe','jnp',
    'jpo','ja','jneb','jae','jnb','jb','jnae','jbe','jna','jg','jnle','jge','jnl',
    'jl','jnge','jle','jng','jcxz','jecxz','loop','loopz','loope','loopnz','loopne',
    'pushad','popad','cmp','test','call');
  //masm的段关键字
  Statements : array[0..24] of String = (
    '386','model','option','data','const','stack','code',
    'proc','endp','struc','ends','end','include','includelib','if','else','elseif',
    'endif','while','endw','repeat','break','continue','until','null');
  //其他描述符
  Description : array[0..11] of String = (
    'ds','cs','es','ss','fs','gs','addr','offset','byte','word','dword','ptr');

目前已知bug是:最后一行的注释符,如果没有连换行一起选择的话,不会被当作注释着色。
欢迎跟帖讨论解决办法。   
具体的高亮代码在附件中,文件头部的注释有详细的说明。   

觉得有用的童鞋给个回复吧,不然就没基情发代码了。

HighLightAsm.zip (2.12 KB, 下载次数: 26)

免费评分

参与人数 1热心值 +1 收起 理由
小明无敌 + 1 我很赞同!

查看全部评分

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

小明无敌 发表于 2012-6-8 21:11
啊  我正要写1个出来呢。。。
你太打击我了           
 楼主| 网络骑士 发表于 2012-6-8 21:14
小明大大,没必要人人都去造轮子啦。
一起看看怎么解决那个最后一行注释的问题吧……
小明无敌 发表于 2012-6-8 21:33
网络骑士 发表于 2012-6-8 21:14
小明大大,没必要人人都去造轮子啦。
一起看看怎么解决那个最后一行注释的问题吧……

语言不通哦。。。帮不了你
 楼主| 网络骑士 发表于 2012-6-8 21:34
你用的啥语言,我翻译过去……
淡然出尘 发表于 2012-6-8 21:49
犀利 膜拜 、
小明无敌 发表于 2012-6-8 21:56
网络骑士 发表于 2012-6-8 21:34
你用的啥语言,我翻译过去……

E            
 楼主| 网络骑士 发表于 2012-6-9 03:14
http://www.52pojie.cn/forum.php? ... d=152170&extra=
翻好了,易的库貌似很好还原的说
pk196371 发表于 2012-7-22 19:55
这个不错....方面以后高亮处理代码~~
daydream 发表于 2012-7-26 16:36
本帖最后由 daydream 于 2012-7-26 17:09 编辑

多谢楼主的努力,



不过注释后面的关键字也被着色
未命名.jpg
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-16 16:21

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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