会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
0KB
博客园
|
首页
|
新随笔
|
新文章
|
联系
|
订阅
|
管理
2011年10月14日
测试着色
摘要: #include <stdio.h>int main(int argc, char** argv){ printf("test.for.cnblogs\n"); return 0;}简单测试代码着色功能。
阅读全文
posted @ 2011-10-14 00:31 0KB
阅读(112)
评论(0)
推荐(0)
2011年10月11日
反编译实例2:补充4
摘要: 接下来尝试do while语句是否能够实现相同功能且汇编一致:#include <stdio.h> int main(int argc, char** argv) { int r2; int r5 = 300; int r6 = 20; int r4 = 0; do { r2 = (r4*5 - 160)/9; printf("%d\t%d\n", r4, r2); r4 += r6; }while(r4<=r5); return 0; } 使用IDA打开编译生成的.o文件:结果发现汇编结果也是一样,是感到惊喜还是巨崩...
阅读全文
posted @ 2011-10-11 17:03 0KB
阅读(140)
评论(0)
推荐(0)
反编译实例2:补充3
摘要: 前面反编译分别使用goto,for语句实现了语句跳转和循环,接下来分析使用while do语句是否可以:#include <stdio.h> int main(int argc, char** argv) { int r2; int r5 = 300; int r6 = 20; int r4 = 0; while(r4<=r5) { r2 = (r4*5 - 160)/9; printf("%d\t%d\n", r4, r2); r4 += r6; } return 0; } 使用IDA打开编译生成的.o文件:...
阅读全文
posted @ 2011-10-11 16:55 0KB
阅读(131)
评论(0)
推荐(0)
反编译实例2:补充2
摘要: 前面反编译的时候我们使用的是goto语句实现的,并简单说明的变量的定义与否。但是这种跳转是否可以使用for语句来实现呢?代码实现如下:#include <stdio.h> int main(int argc, char** argv) { int r2; int r5 = 300; int r6 = 20; int r4; for(r4=0; r5>=r4; r4 += r6) { r2 = (r4*5 - 160)/9; printf("%d\t%d\n", r4, r2); } return 0; } ...
阅读全文
posted @ 2011-10-11 15:52 0KB
阅读(179)
评论(0)
推荐(0)
简单samba安装与配置
摘要: 此配置是基于debian系统的,估计可以直接在ubuntu上进行此方法。首先新安装的debian系统是没有samba服务的,需要我们手动安装,不过在debian系统下已经变得非常简单:apt-get install samba安装好后就可以进行相关配置了,比如在我的机子上有一个用户f30,此用户的根目录为/home/f30,现在我想把此目录共享到windows上,并且只有f30才能进行相关操作。vim /etc/samba/smb.conf加入如下部分:[f30] comment = f30 workspace path = /home/f30 browseable = yes ...
阅读全文
posted @ 2011-10-11 14:57 0KB
阅读(187)
评论(0)
推荐(0)
反编译实例2补充1
摘要: 首先,从程序开始就定义了一些变量r2,r6,r5,r4等,但是r6实际值为20,r5值为300。我们可能会考虑,如果不进行变量的定义而是直接使用数值,汇编是不是也是一样的?现在我们简单的修改一下程序的代码如下:#include <stdio.h> int main(int argc, char** argv) { int r2; //int r5 = 300; //int r6 = 20; int r4 = 0; loc_10: r2 = (r4*5 - 160)/9; ...
阅读全文
posted @ 2011-10-11 13:54 0KB
阅读(208)
评论(0)
推荐(0)
2011年10月9日
反编译实例2:温度转换
摘要: 后续我们会首先显示*.o的汇编,然后使用反编译后的C语言再比较最后的汇编结果。通过IDA打开的汇编语言如下图:接下来我们通过汇编来进行一步步的分析:1、我们不能通过开始给R6,R5,R4的赋值操作确定其具体的含义,但是大致上可以判定为变量的初始化或是数据常量;2、我们看到有一个标示符loc_10,如果你看过《IDA使用指南》的话会发现,这是IDA工具自己生成的,代表了一个跳转位置,符号只是为了阅读代码时起到一定的辅助作用,通过下面的汇编指令BLE loc_10跳转到该位置,而跳转的结果是根据上面的汇编语句CMP R4, R5来进行判断的,意思是如果R4小于等于R5则跳转到loc_10,整个过程
阅读全文
posted @ 2011-10-09 23:24 0KB
阅读(307)
评论(0)
推荐(0)
2011年10月8日
shell if 的一点体会
摘要: 在跟踪一个工程的编译过程时,为了方便实时变量的打印和过程的控制,想使用read读取输入的一个字符,然后判断字符的值,再决定是否继续执行,代码如下:#!/bin/bash echo -e "\e[1;36m segement 1 \e[0m" read ch if [ $ch == "q" ];then exit fi echo -e "\e[1;36m segement 2 \e[0m" 其实,如果正常输入字符的话是没有任何问题的,例如下面两种不同情况的输入结果如下图:但是,如果执行过程没有输入字符,而是直接回车,那么执...
阅读全文
posted @ 2011-10-08 18:07 0KB
阅读(245)
评论(0)
推荐(0)
2011年10月5日
反编译实例1补充
摘要: 实例1中对于寄存器R0的使用没有特别的强调,但是考虑到arm汇编中R0的重要性,这里再通过一个hello world修改后的实例来进一步说明:#include <stdio.h>int main(int argc, char** argv){ printf("hello "); printf("world"); printf("\n"); return 0;}实例中把一个“hello world\n”字符串分三个printf函数调用进行打印输出,armcc生成的.o文件使用IDA打开后的结果如图一:从图中可以看出print
阅读全文
posted @ 2011-10-05 22:35 0KB
阅读(301)
评论(0)
推荐(0)
2011年10月3日
反编译实例1:helloworld
摘要: 第一阶段:从源代码到可执行程序第一个helloworld程序:#include <stdio.h>int main(int argc, char** argv){printf("hello world\n");return 0;}编译接生成可执行程序(armcc helloworld -o helloworld.axf):默认生成的可执行文件为__image.axf,这里指定了生成的可执行文件名helloworld.axf,需要注意的是这一步同时生成了一个中间文件helloworld.o。注意:直接运行.axf文件显然是行不通的,这里需要借助ads提供的调试工具
阅读全文
posted @ 2011-10-03 23:32 0KB
阅读(697)
评论(0)
推荐(0)
下一页
公告