• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • 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)
 
 
下一页

公告


博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3