|
|
|
|
|
[原创]天堂之门 (Heaven's Gate) C语言实现
dearfuture 天堂之门似乎只能应付一些纯应用层检测,但现在大部分都是火绒剑这样的文件过滤驱动或者sysmon/etw之类的是的,毕竟是非常老的技术了,学习一下还是可以,但是实战可能没什么作用了 |
|
|
|
|
|
[原创]基于LLVM Pass实现控制流平坦化
Ssssone 师傅是不是缺了fixStack(f)[em_87]对滴,我另开了一篇文章解释: https://bbs.pediy.com/thread-268789.htm |
|
[原创]基于LLVM Pass实现控制流平坦化
无名侠 FunctionPass *lower = createLowerSwitchPass(); lower->runOnFunction(*f); 这个是好东西,可以让你循环膨胀师傅最近有用过这个函数吗? 我在自己的Pass里调用LowerSwitchPass会崩溃(LLVM12.0): 代码: bool Flattening::runOnFunction(Function &F){ FunctionPass *pass = createLowerSwitchPass(); return pass->runOnFunction(F); } 报错: [100%] Built target LLVMFlattening PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace. Stack dump: 0. Program arguments: opt -load ../Transforms/build/Flattening/LLVMFlattening.so -fla -S TestProgram.ll -o TestProgram_fla.ll 1. Running pass 'Function Pass Manager' on module 'TestProgram.ll'. 2. Running pass 'My obfuscating pass' on function '@_Z7encryptPhPc' #0 0x00007f56f5c38efc llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/ctf/Desktop/llvm-project/build/bin/../lib/libLLVMSupport.so.12+0x198efc) #1 0x00007f56f5c36ca4 llvm::sys::RunSignalHandlers() (/home/ctf/Desktop/llvm-project/build/bin/../lib/libLLVMSupport.so.12+0x196ca4) #2 0x00007f56f5c36e13 SignalHandler(int) (/home/ctf/Desktop/llvm-project/build/bin/../lib/libLLVMSupport.so.12+0x196e13) #3 0x00007f56f5365040 (/lib/x86_64-linux-gnu/libc.so.6+0x3f040) #4 0x00007f56f6bdde94 (anonymous namespace)::LowerSwitchLegacyPass::runOnFunction(llvm::Function&) (/home/ctf/Desktop/llvm-project/build/bin/../lib/libLLVMTransformUtils.so.12+0x17ee94) #5 0x00007f56f140e773 (anonymous namespace)::Flattening::runOnFunction(llvm::Function&) (../Transforms/build/Flattening/LLVMFlattening.so+0xf773) #6 0x00007f56f6071587 llvm::FPPassManager::runOnFunction(llvm::Function&) (/home/ctf/Desktop/llvm-project/build/bin/../lib/libLLVMCore.so.12+0x1ea587) #7 0x00007f56f6071ca1 llvm::FPPassManager::runOnModule(llvm::Module&) (/home/ctf/Desktop/llvm-project/build/bin/../lib/libLLVMCore.so.12+0x1eaca1) #8 0x00007f56f60708ff llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/ctf/Desktop/llvm-project/build/bin/../lib/libLLVMCore.so.12+0x1e98ff) #9 0x00005637785eb262 main (/home/ctf/Desktop/llvm-project/build/bin/opt+0x1b262) #10 0x00007f56f5347bf7 __libc_start_main /build/glibc-S9d2JN/glibc-2.27/csu/../csu/libc-start.c:344:0 #11 0x00005637785ebb5a _start (/home/ctf/Desktop/llvm-project/build/bin/opt+0x1bb5a) ./test.sh: line 7: 98152 Segmentation fault (core dumped) opt -load ../Transforms/build/Flattening/LLVMFlattening.so -fla -S TestProgram.ll -o TestProgram_fla.ll clang-12: error: no such file or directory: 'TestProgram_fla.ll' clang-12: error: no input files |
|
|
|
|
|
[原创]基于LLVM Pass实现控制流平坦化
无名侠 FunctionPass *lower = createLowerSwitchPass(); lower->runOnFunction(*f); 这个是好东西,可以让你循环膨胀学到,突然想起OLLVM源码也有这个玩意,当时没深究 |
|
|
|
[原创]基于LLVM Pass实现控制流平坦化
KomiMoe_ 想问一下。LLVM如何开辟一块栈内存把Value*写入进去。万分感谢可以用AllocaInst和StoreInst实现,这两个指令最后转换成二进制文件就相当于定义了一个局部变量 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值