首页
社区
课程
招聘
[分享]编译反汇编引擎LDE64源代码
发表于: 2023-5-20 18:38 13001

[分享]编译反汇编引擎LDE64源代码

2023-5-20 18:38
13001

LDE64源代码:https://github.com/BeaEngine/lde64

在VS2010下,添加LDE64.ASM

LDE64.ASM的编译选择:Custom Build Tool ->
GoAsm /fo $(IntDir)%(fileName).obj /x64 %(fileName).asm
$(IntDir)%(fileName).obj;

修改了LDE64.ASM一行:_LDE@16: 改成: LDE,就编译通过了,不然会显示:
1>testLDE64.obj : error LNK2001: unresolved external symbol LDE
1>H:\testLDE64-64\x64\Debug\testLDE64.exe : fatal error LNK1120: 1 unresolved externals


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2023-6-24 19:27 被glopen编辑 ,原因:
上传的附件:
收藏
免费 1
支持
分享
最新回复 (1)
雪    币: 503
活跃值: (4877)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2

问题找到了,出在Includes/datas.asm中的
dq   F1_ 语句(所有的都是),这个编译后理论上是F1_的绝对地址,但obj文件中是F1_与这一句的相对偏移 - 4,是不是goasm的bug?


然后我改成dq  F1_ - $,结果编译后obj中此处为0,又是一个bug?
最后改成dd   F1_     - $,就对了
为了改成与官方的shellcode二进制完全一致,改成了以下代码:
dd   F1_     - $,        0……所有地方都得改


加个0是为了与dq的8个字节一致:

方法1:改datas.asm

dd F1_ - $, 0, F1_ - $, 0, F1_ - $, 0, F1_ - $, 0, F3_ - $, 0, F6_ - $, 0, F5_ - $, 0, F5_ - $, 0, F1_ - $, 0, F1_ - $, 0, F1_ - $, 0, F1_ - $, 0, F3_ - $, 0, F6_ - $, 0, F5_ - $, 0, Esc_2byte  - $, 0

dd F1_ - $, 0, F1_ - $, 0, F1_ - $, 0, F1_ - $, 0, F3_ - $, 0, F6_ - $, 0, F5_ - $, 0, F5_ - $, 0, F1_ - $, 0, F1_ - $, 0, F1_ - $, 0, F1_ - $, 0, F3_ - $, 0, F6_ - $, 0, F5_ - $, 0, F5_     - $, 0

…………#


方法2:改LDE64.asm和opcodes.asm

不改datas.asm,在LDE64.asm和opcodes.asm的全部call rax前添加 add rax, 4,一共12个地方,目的是弥补dq  F1_少的那4个字节

       


最后于 2023-6-24 18:40 被glopen编辑 ,原因:
2023-6-24 14:13
0
游客
登录 | 注册 方可回帖
返回
//