发新帖我要提问
12
返回列表
打印

最牛的8051单片机反编译技术说明

[复制链接]
楼主: apple
手机看帖
扫描二维码
随时随地手机跟帖
21
bygreencn| | 2014-1-4 16:54 | 只看该作者 回帖奖励 |倒序浏览
既然不发出来,跑这里显摆什么,扯蛋

使用特权

评论回复
22
hp34401a| | 2014-1-4 19:48 | 只看该作者
bygreencn 发表于 2014-1-4 16:54
既然不发出来,跑这里显摆什么,扯蛋

法拉利跑车发出来,你也买不起啊。;P

使用特权

评论回复
23
cygnal2100| | 2014-1-6 13:06 | 只看该作者
看着这个样子,好像挺NB的

使用特权

评论回复
24
youluo235| | 2014-1-6 13:32 | 只看该作者
帮顶。反汇编。大牛。。。

使用特权

评论回复
25
逍遥派掌门| | 2014-1-6 23:10 | 只看该作者
师弟牛啊

使用特权

评论回复
26
wx85105157| | 2014-1-10 10:00 | 只看该作者
能还原成C就厉害了。

使用特权

评论回复
27
jytaozl| | 2014-1-12 15:26 | 只看该作者
用过1.2的,效果不错。楼主好厉害

使用特权

评论回复
28
itelectron| | 2014-2-18 23:25 | 只看该作者
最牛的 在 这里

int __usercall start<eax>(int (__fastcall *a1)(_DWORD, _DWORD)<eax>, int a2<edx>, int a3<ecx>, int a4<esi>)
{
  int v4; // ebp@1
  int (__fastcall *v5)(_DWORD, _DWORD); // ST04_4@1
  int v6; // ST08_4@1
  int v7; // ST0C_4@1
  int v9; // [sp+0h] [bp-4h]@1

  v9 = a4;
  v7 = a3;
  v6 = a2;
  v5 = a1;
  v4 = 4988934 - (_DWORD)&word_43D93E;
  *(int *)((char *)&dword_43DE17 + 4988934 - (_DWORD)&word_43D93E) = (int)((char *)&dword_43D938
                                                                         + 4988934
                                                                         - (_DWORD)&word_43D93E
                                                                         - *(int *)((char *)&dword_43DE0B
                                                                                  + 4988934
                                                                                  - (_DWORD)&word_43D93E));
  if ( !byte_43DE01[4988934 - (_DWORD)&word_43D93E] )
  {
    ++byte_43DE01[v4];
    sub_4C2051();
    sub_4C22B2();
    sub_4C2350();
  }
  v9 = *(int *)((char *)&dword_43DE17 + v4) + *(int *)((char *)&dword_43DE03 + v4);
  return v5(v7, v6);
}

使用特权

评论回复
29
itelectron| | 2014-2-18 23:25 | 只看该作者
               public start
.text:0043732D start           proc near
.text:0043732D
.text:0043732D var_4           = dword ptr -4
.text:0043732D
.text:0043732D ; FUNCTION CHUNK AT .data:004C2000 SIZE 00000051 BYTES
.text:0043732D
.text:0043732D                 nop
.text:0043732E                 jnz     short $+2
.text:00437330                 jmp     loc_4C2000
.text:00437330 start           endp
.text:00437330
.text:00437330 ; ---------------------------------------------------------------------------
.text:00437335                 align 4
.text:00437338                 dd 32h dup(0)
.text:00437400                 dd 194Eh dup(?)
.text:0043D938 dword_43D938    dd ?                    ; DATA XREF: start+8ACE0o
.text:0043D93C                 db 2 dup(?)
.text:0043D93E word_43D93E     dw ?                    ; DATA XREF: start+8ACDAo
.text:0043D940                 dd 11h dup(?)
.text:0043D984                 db 2 dup(?)
.text:0043D986 dword_43D986    dd ?                    ; DATA XREF: sub_4C2350:loc_4C24AEr
.text:0043D98A                 dw ?
.text:0043D98C                 dd 11Dh dup(?)
.text:0043DE00                 db ?
.text:0043DE01 ; char byte_43DE01[]
.text:0043DE01 byte_43DE01     db ?                    ; DATA XREF: start+8ACF3r
.text:0043DE01                                         ; start+8ACFCw
.text:0043DE02 byte_43DE02     db ?                    ; DATA XREF: sub_4C2051:loc_4C2105r
.text:0043DE02                                         ; sub_4C2051+BDw
.text:0043DE03 dword_43DE03    dd ?                    ; DATA XREF: start:loc_4C203Er
.text:0043DE03                                         ; sub_4C2350+16Cr
.text:0043DE07 dword_43DE07    dd ?                    ; DATA XREF: sub_4C22B2+6r
.text:0043DE0B dword_43DE0B    dd ?                    ; DATA XREF: start+8ACE7r
.text:0043DE0F                 db ?
.text:0043DE10                 db 3 dup(?)
.text:0043DE13 dword_43DE13    dd ?                    ; DATA XREF: sub_4C22B2+17r
.text:0043DE17 dword_43DE17    dd ?                    ; DATA XREF: start+8ACEDw
.text:0043DE17                                         ; start+8AD17r ...
.text:0043DE1B dword_43DE1B    dd ?                    ; DATA XREF: sub_4C2051+8Bw
.text:0043DE1B                                         ; sub_4C2051+CCr ...
.text:0043DE1F dword_43DE1F    dd ?                    ; DATA XREF: sub_4C2051:loc_4C2077r
.text:0043DE1F                                         ; sub_4C2051+72r
.text:0043DE23                 db ?
.text:0043DE24                 dd 4Eh dup(?)
.text:0043DF5C                 db 3 dup(?)
.text:0043DF5F dword_43DF5F    dd ?                    ; DATA XREF: sub_4C2051+58w
.text:0043DF5F                                         ; sub_4C2051+85r
.text:0043DF63 dword_43DF63    dd ?                    ; DATA XREF: sub_4C2051+6Cw
.text:0043DF63                                         ; sub_4C2051+117r
.text:0043DF67 dword_43DF67    dd ?                    ; DATA XREF: sub_4C2350+77w
.text:0043DF67                                         ; sub_4C2350+89r
.text:0043DF6B dword_43DF6B    dd ?                    ; DATA XREF: sub_4C2350+56w
.text:0043DF6B                                         ; sub_4C2350+91r
.text:0043DF6F dword_43DF6F    dd ?                    ; DATA XREF: sub_4C2051+42w
.text:0043DF73 dword_43DF73    dd ?                    ; DATA XREF: sub_4C2051+35r
.text:0043DF73                                         ; sub_4C2350:loc_4C238Br
.text:0043DF77                 db ?
.text:0043DF78                 dd 2 dup(?)
.text:0043DF80 dword_43DF80    dd ?                    ; DATA XREF: sub_4C2051+4Ar
.text:0043DF84                 dd 2 dup(?)

使用特权

评论回复
30
itelectron| | 2014-2-18 23:26 | 只看该作者
最牛的 直接把汇编转成C

使用特权

评论回复
31
itelectron| | 2014-2-18 23:54 | 只看该作者
int __usercall start<eax>(int (__fastcall *a1)(_DWORD, _DWORD)<eax>, int a2<edx>, int a3<ecx>)
{
  int (__fastcall *v4)(_DWORD, _DWORD); // [sp-1Ch] [bp-20h]@1
  int v5; // [sp-18h] [bp-1Ch]@1
  int v6; // [sp-14h] [bp-18h]@1

  v6 = a3;
  v5 = a2;
  v4 = a1;
  unk_4C24DF = (char *)&dword_43D938[135602] - unk_4C24D3;
  if ( !algn_4C24C9[0] )
  {
    ++algn_4C24C9[0];
    sub_4C2051(542408);
    sub_4C22B2(542408);
    sub_4C2350(542408);
  }
  return v4(v6, v5);
}

使用特权

评论回复
32
luoxin1222| | 2014-2-20 11:06 | 只看该作者
看上去貌似很厉害啊

使用特权

评论回复
33
我是个大好人| | 2016-12-17 11:20 | 只看该作者
感谢楼主分享,1.2运行良好

使用特权

评论回复
34
cqwangsf| | 2016-12-18 10:02 | 只看该作者
“最” 被广告法禁止使用,这是明显违法的广告!

现在51用户越来越少了!就是因为这种反向工程的人存在!

做技术的人不遵重知识产权,社会不遵重技术人员!!!!

使用特权

评论回复
35
z7001| | 2016-12-22 16:36 | 只看该作者
itelectron 发表于 2014-2-18 23:54
int __usercall start(int (__fastcall *a1)(_DWORD, _DWORD), int a2, int a3)
{
  int (__fastcall *v4)( ...

跟你请教下:你在https://bbs.21ic.com/icview-582074-2-2.html 里发表的BIN反C用的是IDA吗? 还是其他?

使用特权

评论回复
36
apple|  楼主 | 2017-7-20 14:36 | 只看该作者
C我们做不出来,没有这个技术

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则