
软件源代码分析
文章平均质量分 71
软件源代码课程相关的学习记录。
忧郁奔向冷的天
我喜欢唱歌(八九十年代的歌), (徒手)健身,学习(数学,物理,编程)。
展开
-
pyinstaller打包的exe转为源代码
从exe获取代码https://reverseengineering.stackexchange.com/questions/160/how-do-you-reverse-engineer-an-exe-compiled-with-pyinstallerLLVMhttps://www.infoworld.com/article/3247799/what-is-llvm-the-power-behind-swift-rust-clang-and-more.htmlMozilla RustApple原创 2021-08-14 19:37:57 · 2249 阅读 · 2 评论 -
Course Assignment:给出任意c源代码,输出其对应的cfg与du paths
今天终于把作业交了,虽然瑕疵比较多。作业:给出任意c源代码,输出其对应的cfg与du paths。注:1.在main之前声明变量时,这也是对变量的定义。比如在main之前声明:long i, j, maxi。虽然没写具体声明值是多少,但其实在编译器内部已经对其赋予了一个随机值。所以要把声明也当作对变量的定义2.这里的du path的定义是:节点与节点之间的连接不重复出现两次。路径开头为变量...原创 2020-04-13 12:22:10 · 731 阅读 · 1 评论 -
graphviz模块与graphviz软件交互
from graphviz import Digraphg = Digraph('CFG')g.node(name='Entry')g.node(name='C3')g.node(name='W5')g.node(name='C6')g.node(name='W8')g.node(name='I9')g.node(name='C10')g.node(name='C14')...原创 2020-04-13 10:41:39 · 329 阅读 · 0 评论 -
CFG and D-U Paths
最近在写软件源代码课程的作业,作业要求:输入任意一段c语言,输出CFG和D-U Paths。下面说一下概念。变量的定义与使用(du of vars):如 i = i+1 先对 i 使用再对 i 定义。变量的使用:变量被定义以后可分为两种用途,一是用于判断(predicate, p-use) 如x>10,二是用于计算(computation, c-use)如y=x+1。定义清晰路径:(...原创 2020-03-30 20:20:40 · 644 阅读 · 1 评论 -
使用 graphviz dot 绘制有向图
1.下载,解压2.将dot添加到环境变量3.编写dot文件4.将dot文件转化为PNG打开cmdcd到dot文件的目录下dot -Tpng example1.dot -o example1.png5.附代码digraph G{node[color="red"];A[label="傅里叶变换",fontname="FangSong"];node [color="yello...原创 2020-03-22 13:57:21 · 1556 阅读 · 0 评论 -
python代码输出为抽象树
# -*- coding: utf-8 -*-"""Created on Mon Feb 24 12:17:32 2020@author: leslielee抽象树abstract syntax tree 或 parse tree, 是高级语言编译为汇编语言的第二步。python有内置的模块ast,但是用print输出不好看所以使用astpretty输出https://www...原创 2020-02-26 08:40:56 · 500 阅读 · 0 评论